/* External workspace · v2026.11.05.2. The single final skin over shared functional CSS. */
:root{--ink:#202b40;--muted:#667287;--line:#e4eaf2;--line-strong:#cbd5e3;--surface:#f7f9fc;--bg:#f7f9fc;--panel:#fff;--panel-strong:#fff;--hairline:#edf1f6;--accent:#4368c7;--accent-deep:#3053ac;--data:#24765d;--danger:#b33942;--warn:#8b5d15;--radius:12px;--shadow:none;--lime:#edf3ff;--lime-deep:#4368c7;--sidebar-width:232px;--wl-bg:#f7f9fc;--wl-sand:#f1f5fa;--blue-soft:#edf3ff;--mint-soft:#edf8f2;--violet-soft:#f3effc;color-scheme:light}
html,body{min-height:100%;background:var(--bg)}
body{margin:0;color:var(--ink);font-family:"Segoe UI Variable Text","Segoe UI","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.6;background-image:none;background-attachment:scroll;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}
body::before,.sidebar::before,.sidebar::after,.login-screen::before,.login-screen::after,.page-heading h1::before{content:none;display:none}
::selection{background:#dce8ff;color:#24385c}input{caret-color:var(--accent)}
button,input,select,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{border:2px solid transparent;background:#bfcadb;background-clip:content-box;border-radius:8px}*::-webkit-scrollbar-thumb:hover{background-color:#95a6bf}
h1,h2,h3{color:var(--ink)}h1{font-size:26px;font-weight:650;line-height:1.3;letter-spacing:-.025em}h2{font-size:17px;font-weight:650;letter-spacing:-.01em}h3{font-size:15px;font-weight:600}
.muted,.section-meta,.page-note,.source-note,.query-time{color:var(--muted)}.strong{font-weight:600}.error,.danger{color:var(--danger)}.warning-text{color:var(--warn)}
/* Desktop rail and utility header. */
.sidebar{position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;width:var(--sidebar-width);height:100dvh;padding:28px 18px 18px;border:0;border-right:1px solid var(--line);border-radius:0;background:#fff;box-shadow:none;overflow-x:hidden;overflow-y:auto;z-index:65}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:0 0 auto;position:relative;margin:0;padding:1px 12px 28px;color:var(--ink);text-decoration:none;letter-spacing:0}
.brand-logo-img{display:block;width:116px;height:auto;opacity:1;filter:none;mix-blend-mode:normal}.brand span{display:block;margin:0;color:var(--muted);font-size:12px;font-weight:400;line-height:1.5;letter-spacing:.04em}
.sidebar-caption{margin:8px 12px 12px;color:var(--muted);font-size:11px;line-height:1.5;font-weight:600;letter-spacing:.08em}
.sidebar nav{display:flex;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:6px;margin:0;padding:0;width:100%}
.sidebar nav button{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;width:100%;padding:11px 13px;border:0;border-radius:9px;color:#647087;background:transparent;font-size:13px;font-weight:500;line-height:1.6;text-align:left;white-space:nowrap;box-shadow:none;transition:background-color 150ms ease,color 150ms ease}
.sidebar nav button:hover{background:#f5f7fb;color:#344b72;transform:none}.sidebar nav button.active,.sidebar nav button.active:hover{background:var(--blue-soft);color:var(--accent-deep);font-weight:600;box-shadow:none}.sidebar nav button::before,.sidebar nav button::after{content:none;display:none}
.nav-icon{display:grid;place-items:center;width:19px;height:19px;flex:0 0 19px;opacity:1}.nav-icon svg{width:19px;height:19px}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-note{display:flex;flex:0 0 auto;align-items:flex-start;gap:10px;margin:32px 4px 20px;padding:13px 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:#f9fbfd}.sidebar-note-dot{display:block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#7ba992;margin-top:6px}.sidebar-note strong{color:#4a5c74;font-size:12px;font-weight:600}.sidebar-note p{margin:4px 0 0;font-size:11px;line-height:1.7}
.sidebar-foot{display:grid;grid-template-columns:1fr 1fr;flex:0 0 auto;align-items:center;gap:7px;margin:auto 4px 0;padding:20px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.sidebar-user{display:flex;grid-column:1/-1;gap:8px;align-items:center;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:13px;font-weight:600;line-height:1.7}.sidebar-user::before{content:"";display:block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--data);box-shadow:none}.sidebar-foot .text-button{margin:0;min-height:36px;padding:6px 0;color:var(--muted);font-size:12px;text-align:left}.sidebar-foot .text-button:hover{color:var(--accent-deep);background:transparent}
.workspace{margin-left:var(--sidebar-width);padding-bottom:0;min-width:0;min-height:100dvh}
.workspace-topbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:68px;padding:12px 32px;border-bottom:1px solid var(--line);background:#fff;z-index:50}
.workspace-breadcrumb{display:flex;align-items:center;gap:12px;min-width:0;font-size:12px;color:var(--muted)}.workspace-breadcrumb strong{color:#3b4d68;font-size:13px;font-weight:500;white-space:nowrap}.workspace-breadcrumb svg{color:#9aa7ba;flex:0 0 auto}
.workspace-account{display:flex;align-items:center;gap:11px;min-width:0;font-size:12px;color:var(--muted)}.workspace-account time{padding-right:18px;border-right:1px solid var(--line);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.workspace-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;color:#5a5ca2;background:var(--violet-soft);font-size:13px;font-weight:600}.workspace-account>div{display:flex;flex-direction:column;min-width:0;line-height:1.5}.workspace-account strong{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c4c64;font-size:12px;font-weight:600}.workspace-account>div>span{font-size:10px;color:var(--muted)}
main{width:100%;max-width:1600px;padding:30px 32px 56px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{display:block;margin:0;gap:0;font-size:26px;font-weight:650;letter-spacing:-.025em}.page-title{min-width:0}.heading-description{margin:7px 0 0;max-width:72ch;font-size:13px;color:var(--muted);line-height:1.7}.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.workspace-insight{display:flex;align-items:center;gap:16px;margin:0 0 24px;padding:20px 22px;border:1px solid #e1e9f5;border-radius:12px;background:linear-gradient(110deg,#edf5ff 0%,#f1effb 58%,#eef8f3 100%)}.insight-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:10px;color:#5070ba;background:#fff}.workspace-insight>div:not(.insight-icon){min-width:0}.workspace-insight strong{color:#34496e;font-size:15px;font-weight:600}.workspace-insight p{margin:5px 0 0;max-width:80ch;font-size:12px;color:#5d6e88;line-height:1.7}.insight-date{flex:0 0 auto;margin-left:auto;padding:7px 11px;border:1px solid #dce5f0;border-radius:8px;color:#60728c;background:#fff;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.section-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0;margin-bottom:14px;font-size:12px}.section-meta>span:first-child{color:var(--muted);font-weight:400}.section-meta>span:first-child::before{content:none;display:none}.meta-separator{color:#a4afbf}.section-toolbar{gap:16px;margin-bottom:18px}
/* Shared controls. */
.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 15px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:#42536e;font-size:13px;font-weight:550;line-height:1.5;box-shadow:none;backdrop-filter:none;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease}.button:hover:not(:disabled){transform:none;background:#f4f7fc;border-color:#aebfd9;color:#2b4774;box-shadow:none}.button.primary,.login-button{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:none}.button.primary:hover:not(:disabled),.login-button:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.danger-button{color:#fff;border-color:var(--danger);background:var(--danger)}.danger-button:hover:not(:disabled){color:#fff;border-color:#922933;background:#922933}.button:disabled{cursor:not-allowed;opacity:.55}
.text-button,.link-button{border:0;background:transparent;color:var(--accent-deep);font-size:13px;font-weight:500;box-shadow:none}.text-button:hover,.link-button:hover{color:#27488e;background:transparent;text-decoration:underline;text-underline-offset:3px}.text-button.danger,.link-button.danger{color:var(--danger)}
input:not([type=checkbox]),select{min-height:40px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--ink);font-family:inherit;font-size:13px;box-shadow:none;transition:border-color 150ms ease,background-color 150ms ease}input:not([type=checkbox]):focus,select:focus{outline:2px solid #b9cdf6;outline-offset:1px;border-color:#7798d7;background:#fff;box-shadow:none}input::placeholder{color:var(--muted);opacity:1}input:disabled{background:#f3f5f8;color:#68778e}input[type=checkbox]{accent-color:var(--accent)}
.app-picker-input{border-radius:8px}.app-picker-list,.app-picker>.app-picker-list{border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 12px 28px -16px rgba(31,48,78,.18)}.app-picker-option{border-radius:6px;color:var(--ink)}.app-picker-option:hover,.app-picker-option.selected{background:var(--blue-soft);color:var(--accent-deep)}.field-label,.field-block,.finance-toolbar>label,.min-amount-field,.form-field{color:#56657d}.form-field{font-size:13px}.form-field>input,.form-field>select{border-radius:8px}.advanced-settings{color:var(--muted)}
.date-shortcuts{gap:5px;padding:0;border:0;background:transparent;border-radius:0}.date-shortcuts button{min-height:40px;padding:8px 11px;border-radius:8px;background:transparent;color:var(--muted);font-size:12px}.date-shortcuts button:hover{background:#eef3fb;color:var(--accent-deep)}.date-shortcuts button.selected,.date-shortcuts button.selected:hover{color:var(--accent-deep);background:var(--blue-soft);box-shadow:none;font-weight:600}.record-tabs{gap:22px}.record-tabs button{min-height:40px;padding:10px 0;border-radius:0;font-size:13px;color:var(--muted)}.record-tabs button.active{border-bottom-color:var(--accent);color:var(--accent-deep);background:transparent;font-weight:600}
.overview-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.overview-sort{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.overview-sort select{min-height:40px;max-width:160px;padding:7px 10px;font-size:12px;border-radius:8px}.overview-tools .search-input{width:210px}.overview-name-toggle{flex:0 0 auto}

/* Source, amount and coverage form one consistent financial summary. */
.totals-strip{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));gap:0;padding:0;margin-bottom:26px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:none}.totals-strip>div{position:relative;min-width:0;padding:22px 24px;border:0;border-left:1px solid var(--line);border-radius:0;color:var(--ink);background:#fff;box-shadow:none;overflow:visible}.totals-strip>div:first-child{padding-left:24px;border-left:0}.totals-strip>div::after{content:none;display:none}.totals-strip>div>span{display:block;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.totals-strip strong{display:block;margin-top:10px;font-family:inherit;color:#263c60;font-size:30px;font-weight:600;line-height:1.3;letter-spacing:-.025em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.totals-strip strong small{margin-left:6px;color:var(--muted);font-family:inherit;font-size:12px;font-weight:400;letter-spacing:0}.totals-strip p{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.7}
.totals-strip .total-main{color:var(--ink);background:#fff;border-color:var(--line);box-shadow:none}.totals-strip .total-main>span{color:var(--muted)}.totals-strip .total-main strong{color:#263c60;font-size:32px}.totals-strip .total-main strong small,.totals-strip .total-main p{color:var(--muted)}.totals-strip .warning-text,.total-main .warning-text{color:var(--warn)}.total-main em,.totals-strip em{color:var(--warn);background:transparent;font-style:normal;font-size:12px;font-weight:500;letter-spacing:0}
.finance-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-totals-single{grid-template-columns:minmax(0,1fr);max-width:520px}.adreport-totals{grid-template-columns:repeat(4,minmax(0,1fr))}.query-coverage,.query-totals .total-main .query-coverage{color:var(--muted);opacity:1}.adfund-strip{border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;box-shadow:none;padding:18px 20px}.adfund-strip strong{color:#2e486e;font-size:22px}.adfund-note{color:var(--muted)}
/* Game cards: identity, status, amount, then the existing detail action. */
.games-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.game-card{min-width:0;min-height:218px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;box-shadow:none;overflow:hidden;transition:border-color 150ms ease,background-color 150ms ease}.game-card:hover{border-color:#b9cbea;background:#fff;box-shadow:none;transform:none}.game-card:active{transform:none;background:#f8faff}.game-card-title{padding:18px 18px 13px;gap:11px;border-bottom:0;background:#fff}.game-card-title h3{margin-bottom:4px;color:#2b3b56;font-size:14px;font-weight:600;line-height:1.6;letter-spacing:0}
.game-mark{width:36px;height:36px;flex:0 0 36px;border:0;border-radius:9px;color:var(--game-color,#44659e);background:var(--game-tint,#edf3ff);font-size:11px;font-weight:600;letter-spacing:0;box-shadow:none}.tone-0{--game-color:#356d58;--game-tint:#eaf6ef;--game-wash:#f7fbf9}.tone-1{--game-color:#4b6ba9;--game-tint:#ecf2ff;--game-wash:#f8faff}.tone-2{--game-color:#8a6936;--game-tint:#fbf3e5;--game-wash:#fdfbf7}.tone-3{--game-color:#75619e;--game-tint:#f2edfa;--game-wash:#faf8fd}.tone-4{--game-color:#9a6268;--game-tint:#faedf0;--game-wash:#fdf9fa}
.connection-text{display:inline-flex;align-items:center;color:var(--muted);font-size:11px;line-height:1.6}.connection-text.error{color:var(--danger)}.connection-text.sample,.connection-text.partial{color:var(--warn)}.game-card-money{padding:4px 18px 16px}.game-card-money>span{margin-bottom:5px;color:var(--muted);font-size:11px}.game-income{color:#293d5b;font-family:inherit;font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1.4;font-variant-numeric:tabular-nums}.game-income small{color:var(--muted);font-size:12px;font-weight:400}.game-card-bottom{margin-top:auto;padding:11px 18px;border-top:1px solid var(--hairline);background:#fff;color:var(--muted);font-size:11px;line-height:1.7}.detail-link{color:var(--accent-deep);font-size:11px;font-weight:500}.page-note{font-size:12px;margin-top:20px}
/* Financial tables retain every original precision and missing-value rule. */
.income-records{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.table-container,.income-records .table-container{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:none;overflow:auto}.table-container table{margin:0}th{padding:12px 16px;border-bottom:1px solid var(--line);background:#f8fafd;color:#62718b;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}td{padding:14px 16px;border-bottom:1px solid var(--hairline);color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}tbody tr:hover{background:#f8fbff}tbody tr:last-child td{border-bottom:0}.table-footer{padding-top:16px;color:var(--muted);font-size:12px}.table-footer .button{min-height:36px}
.record-value{border-radius:6px;box-shadow:none}.record-value.amount-tier-red{box-shadow:none}.record-notice{border:1px solid #eadfc6;border-radius:9px;color:var(--warn);background:#fffaef;font-size:13px}.inline-success{border-color:#d1e8dc;border-radius:9px;color:var(--data);background:var(--mint-soft)}.inline-error{border-color:#ecd4d7;border-radius:9px;color:var(--danger);background:#fcf1f2}.empty-state{border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);box-shadow:none}.empty-state h3{color:#354968;font-size:16px}.pending-badge{color:var(--warn);background:#fff4df;border-radius:6px}
.perm-badge{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:3px 9px;border:0;border-radius:6px;font-size:11px;font-weight:550;white-space:nowrap}.perm-manage,.mp-config .status-badge.positive{color:var(--data);background:var(--mint-soft)}.perm-readonly,.mp-config .status-badge.neutral{color:#65617e;background:var(--violet-soft);box-shadow:none}button.perm-badge{font-family:inherit;cursor:pointer;transition:background-color 150ms ease}button.perm-badge:hover:not(:disabled){box-shadow:none;filter:brightness(.97)}button.perm-badge:disabled{cursor:default;opacity:1}.form-check{display:flex;align-items:flex-start;gap:9px;margin:2px 0 0;color:var(--ink);font-size:13px;cursor:pointer}.form-check input{flex:0 0 16px;width:16px;height:16px;min-height:0;padding:0;margin:3px 0 0}.accounts-table td,.accounts-table th{white-space:nowrap}.app-toast{border-radius:9px;background:#30496d;color:#fff;box-shadow:0 8px 24px -12px rgba(25,43,70,.24);font-size:13px}
/* Bounded dialogs and account form actions preserve existing behavior. */
.overlay{padding:24px;background:rgba(27,42,65,.28);backdrop-filter:none}.dialog{width:500px;max-width:100%;max-height:calc(100dvh - 48px);padding:24px 26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 24px 64px -28px rgba(25,43,70,.25);backdrop-filter:none}.dialog-heading{margin-bottom:20px}.dialog-heading h2{color:var(--ink);font-size:18px;font-weight:600;letter-spacing:-.01em}.close-button{color:var(--muted);border-radius:8px}.close-button:hover{color:var(--ink);background:#f1f5fb}.dialog .dialog-actions{z-index:3;border-top:1px solid var(--line);background:#fff}
.dialog.account-dialog{display:block;overflow:hidden;max-height:calc(100dvh - 48px);padding:24px 26px 0}.dialog.account-dialog>form.dialog-body{display:block;max-height:calc(100dvh - 250px);overflow-y:auto;overscroll-behavior:contain;padding:2px 6px 12px 0}.dialog.account-dialog>.dialog-actions{position:static;margin:0;padding:14px 0 18px;border-top:1px solid var(--line);background:#fff}.dialog.account-dialog .app-picker-list{max-height:200px;overflow:auto}.account-form-error{margin:0;padding:10px 0;color:var(--danger);border-color:#edd7d9}
.overlay.detail-overlay{align-items:stretch;justify-content:flex-end;padding:0}.income-drawer{width:min(100%,1000px);height:100dvh;max-height:100dvh;border-radius:0;background:#fff;box-shadow:-18px 0 54px -24px rgba(25,43,70,.24)}.drawer-header{padding:24px 28px;border-bottom:1px solid var(--line);background:#fff;backdrop-filter:none}.drawer-game h2{font-size:19px;letter-spacing:-.01em}.drawer-body{padding:24px 28px 32px}.drawer-body .totals-strip{border-radius:12px}
/* Quiet login/license screens: no decorative grid or background images. */
.login-screen,.license-screen{background:var(--bg);background-image:none}.login-card,.license-card{width:min(400px,100%);padding:32px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 16px 40px -24px rgba(25,43,70,.16);backdrop-filter:none}.login-logo{width:112px}.login-brand span{color:var(--muted);font-size:12px;letter-spacing:.04em}.login-button{min-height:44px;border-radius:9px;font-weight:600}.license-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.license-badge{display:inline-flex;padding:4px 9px;border-radius:6px;color:var(--danger);background:#fcf0f2;font-size:12px;font-weight:600}.license-card h1{font-size:21px}.license-reason{color:var(--danger);font-size:13px}.license-meta{display:grid;gap:9px;margin:20px 0;text-align:left}.license-meta>div{display:flex;justify-content:space-between;gap:16px;font-size:12px}.license-meta dt{color:var(--muted)}.license-meta dd{margin:0;color:var(--ink);overflow-wrap:anywhere}.license-meta .mono{font-family:ui-monospace,Consolas,monospace;font-size:12px;text-align:right;word-break:break-all}.license-hint{color:var(--muted);font-size:12px;line-height:1.7}
.app-splash{color:var(--muted);background:var(--bg)}.splash-dot{background:var(--accent);animation:none}.refreshing{animation:none;opacity:.65;transition:opacity 150ms ease}.record-new{animation:workspace-record-enter 150ms ease-out}@keyframes workspace-record-enter{from{background-color:#edf3ff}to{background-color:transparent}}

/* These realtime components are shared by mini-program and game modules. */
.mp-chart-card,.mp-grid .panel,.mp-day{padding:18px 20px;margin-bottom:18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:none}.mp-chart-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.mp-chart-head h3,.panel-title{font-size:14px;font-weight:600}.mp-chart{display:block;width:100%;height:120px;border-radius:8px;background:#fbfcff}.mp-chart-area{fill:#edf3fd;stroke:none}.mp-chart-line{fill:none;stroke:#6687d1;stroke-width:1.2;vector-effect:non-scaling-stroke}.mp-chart-axis{display:flex;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:11px}.mp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.mp-grid .panel{margin-bottom:0}.panel-title{margin:0 0 12px}.mp-grid .table-container,.mp-config .table-container{border:1px solid var(--line);border-radius:9px}.mp-webhook-url{margin:10px 0;white-space:pre-wrap;word-break:break-all}
.mp-sync-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:-10px 0 14px}.mp-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.mp-day{margin-bottom:0;padding:15px 18px}.mp-day>span{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-size:12px;font-weight:500}.mp-day>span small{font-weight:400}.mp-day strong{display:block;margin-top:7px;color:#2d4468;font-size:24px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mp-day strong small{margin-left:4px;color:var(--muted);font-size:12px;font-weight:400}.mp-day p{margin-top:5px;color:var(--muted);font-size:11px}
.mp-config{margin-bottom:20px}.mp-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.mp-config-head .muted{margin-top:4px;font-size:12px}.mp-config-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.mp-app-message{max-width:360px;text-align:right}.mp-config .status-badge{display:inline-flex;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600}.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.link-button{padding:3px 0;text-decoration:underline;text-underline-offset:3px}.mp-app-dialog{width:min(460px,100%)}.mp-chart-empty{margin-top:10px;font-size:12px;line-height:1.7}.mp-hook-status{color:var(--muted)}.mp-sort{border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);font-size:13px}
@media(min-width:701px) and (max-width:1400px){.games-grid{grid-template-columns:repeat(3,minmax(0,1fr))}main{padding-left:28px;padding-right:28px}}
@media(min-width:701px) and (max-width:1120px){
  :root{--sidebar-width:224px}.sidebar{padding-left:14px;padding-right:14px}main{padding:26px 24px 48px}.workspace-topbar{padding-left:24px;padding-right:24px}.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:flex-start;flex-wrap:wrap}.overview-tools{width:100%}.section-toolbar{flex-wrap:wrap}.adreport-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.adreport-totals>div:nth-child(3){padding-left:24px;border-left:0;border-top:1px solid var(--line)}.adreport-totals>div:nth-child(4){border-top:1px solid var(--line)}.insight-date{display:none}
}
@media(min-width:701px) and (max-height:760px){.sidebar{padding-top:20px}.brand{padding-bottom:18px}.sidebar-note{margin-top:20px}}
/* Phone layout: local scrolling, safe-area navigation and readable field labels. */
@media(max-width:700px){
  html,body{background:var(--bg)}.sidebar,.workspace-topbar{display:none}.workspace{margin-left:0;padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .mobile-header{display:flex;position:sticky;top:0;align-items:center;justify-content:space-between;height:58px;padding:0 16px;border-bottom:1px solid var(--line);background:#fff;backdrop-filter:none;box-shadow:none;z-index:50}.mobile-brand img{height:21px;width:auto;filter:none}.mobile-user{max-width:140px;color:var(--muted);font-size:12px}.mobile-logout{min-width:44px;min-height:44px;padding:8px;color:var(--accent-deep);font-size:12px}
  main{max-width:none;width:100%;padding:22px 16px 28px}.page-heading{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:20px}.page-title{flex:1 1 170px}.page-heading h1{font-size:22px;line-height:1.4}.heading-description{margin-top:5px;font-size:12px;line-height:1.7}.page-actions{width:auto;margin-left:auto;gap:8px;max-width:100%;flex-wrap:wrap;justify-content:flex-start}.page-actions .button{min-height:44px;padding:8px 12px;font-size:12px}.page-actions select{min-width:0;flex:1 1 46%}
  .workspace-insight{align-items:flex-start;gap:11px;padding:15px;margin-bottom:20px}.insight-icon{width:34px;height:34px;flex-basis:34px;border-radius:8px}.workspace-insight strong{font-size:14px}.workspace-insight p{font-size:12px}.insight-date{display:none}.section-meta{flex-direction:column;align-items:flex-start;gap:4px;font-size:11px}
  .totals-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0;margin-bottom:22px;border-radius:12px;background:#fff}.totals-strip>div,.totals-strip>div:first-child{padding:17px 18px;border:0;border-radius:0;background:#fff}.totals-strip .total-main{grid-column:1/-1;padding:18px;border-bottom:1px solid var(--line);background:#fff}.totals-strip>div:last-child:not(:first-child){border-left:1px solid var(--line)}.totals-strip>div>span{font-size:12px}.totals-strip strong,.totals-strip .total-main strong{font-size:28px;margin-top:7px}.totals-strip>div:not(.total-main) strong{font-size:24px}.totals-strip p{font-size:12px}
  .finance-totals,.finance-totals-single{grid-template-columns:1fr;gap:0;border:1px solid var(--line);max-width:none;overflow:hidden}.finance-totals>div,.finance-totals>div:last-child{padding:17px 18px!important;border:0!important;border-radius:0!important;background:#fff}.finance-totals>div+div{border-top:1px solid var(--line)!important}.adreport-totals{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;row-gap:0;column-gap:0}.adreport-totals>div:nth-child(3),.adreport-totals>div:nth-child(4){padding-left:18px;border-top:1px solid var(--line)}.adreport-totals>div:nth-child(even){border-left:1px solid var(--line)}
  .games-grid{grid-template-columns:1fr;gap:12px}.game-card{min-height:0;border-radius:12px}.game-card-title{padding:17px 17px 12px}.game-card-title h3{font-size:15px}.game-card-money{padding:0 17px 16px}.game-income{font-size:25px}.game-card-bottom{padding:11px 17px}.section-toolbar{flex-wrap:wrap;gap:12px;margin-bottom:15px}.section-toolbar h2{font-size:16px}
  .overview-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;width:100%}.overview-sort{grid-column:1;min-width:0}.overview-sort select{max-width:none;width:100%;flex:1 1 auto;min-width:0}.overview-name-toggle{grid-column:2}.overview-tools .search-input{width:100%;min-width:0;grid-column:1/-1}
  .button,.date-shortcuts button,.record-tabs button,input:not([type=checkbox]),select,.overview-sort select{min-height:44px}input:not([type=checkbox]),select,.app-picker-input,.min-amount-field input{font-size:16px}.button{padding:9px 13px}.text-button{min-height:44px}
  .finance-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.finance-toolbar>*{grid-column:1/-1;min-width:0}.finance-toolbar .field-block,.finance-toolbar>label{margin:0;padding:0}.date-filter{margin:0}.date-inputs{gap:7px}.date-inputs input{flex:1 1 0;width:0;min-width:0;font-size:15px}.date-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%}.date-shortcuts button{min-width:0;padding:8px 2px;font-size:11px}.min-amount-row{gap:8px;align-items:flex-end}.min-amount-field{flex:1 1 auto;min-width:0;width:0}.finance-name-toggle{flex:0 0 auto;font-size:12px}
  .source-note{font-size:12px;margin-bottom:20px;line-height:1.7}.source-toolbar,.source-tools{flex-wrap:wrap;gap:10px}.source-tools{width:100%}.source-tools .search-input{width:100%;flex:1 1 100%}.source-tools .button{flex:1 1 auto;min-height:44px}
  .table-container,.income-records .table-container{border:1px solid var(--line);border-radius:12px;background:#fff;-webkit-overflow-scrolling:touch}.income-records{padding:0}th,td{padding:12px}.records-table .numeric{background:#fff}.records-table th.numeric{background:#f8fafd}.record-value{padding:5px 7px}.table-footer{padding:14px 2px 0;gap:10px;font-size:12px}.table-footer>div{gap:8px;margin-left:auto;width:auto}.table-footer .button{min-height:44px}
  .accounts-table td:nth-child(2)::before{content:"角色"}.accounts-table td:nth-child(3)::before{content:"已绑定"}.accounts-table td:nth-child(4)::before{content:"额度"}.accounts-table td:nth-child(5)::before{content:"权限"}.accounts-table td:nth-child(2),.accounts-table td:nth-child(3),.accounts-table td:nth-child(4),.accounts-table td:nth-child(5){display:flex;align-items:center;gap:12px}.accounts-table td::before{color:var(--muted);font-size:12px;min-width:52px}.accounts-table .operations{white-space:normal}.perm-badge{min-height:36px}
  .apps-table.query-table td:not(:first-child){gap:16px;font-size:14px}.apps-table.query-table .query-cell-label{display:block;color:var(--muted)}.query-toolbar .record-tabs{display:flex;flex-wrap:wrap}.query-toolbar .query-select{width:100%}.query-date-range{width:100%}.query-date input{min-height:44px;font-size:16px}.adreport-filters{width:100%}.adreport-date{flex:1 1 100%}.adreport-date input{flex:1;min-width:0}.adreport-search{flex:1 1 100%;width:100%}

  .overlay{align-items:flex-end;padding:12px}.dialog{width:100%;max-height:calc(100dvh - 24px);padding:20px 18px calc(18px + env(safe-area-inset-bottom));border-radius:14px}.dialog-heading{margin-bottom:16px}.dialog-heading h2{font-size:18px}.dialog .dialog-actions>.button{min-height:44px}.dialog.account-dialog{max-height:calc(100dvh - 24px);padding:20px 18px 0}.dialog.account-dialog>form.dialog-body{max-height:calc(100dvh - 230px);padding:2px 6px 10px 0}.dialog.account-dialog>.dialog-actions{padding:12px 0 calc(12px + env(safe-area-inset-bottom))}
  .overlay.detail-overlay{align-items:stretch;padding:0}.income-drawer{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.drawer-header{padding:16px}.drawer-game h2{font-size:17px}.drawer-body{padding:17px 16px calc(28px + env(safe-area-inset-bottom))}.close-button{width:44px;height:44px;flex:0 0 44px}
  .tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:4px;max-width:100%;margin:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);border-radius:0;background:#fff;box-shadow:none;backdrop-filter:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:thin;z-index:60}.tabbar button{flex:1 0 68px;min-width:68px;width:auto;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 3px;border:0;border-radius:8px;color:var(--muted);background:transparent;font-size:11px;font-weight:400;line-height:1.3;white-space:nowrap;box-shadow:none}.tabbar button svg{width:20px;height:20px}.tabbar button.active{background:var(--blue-soft);color:var(--accent-deep);font-weight:600;box-shadow:none}.tabbar button.active::before{content:none;display:none}
  .mp-grid{grid-template-columns:1fr;gap:14px}.mp-chart{height:96px}.mp-chart-card,.mp-grid .panel{padding:16px}.mp-config-head{flex-direction:column;gap:12px}.mp-config-actions{width:100%;flex-wrap:wrap;justify-content:space-between}.mp-app-message{text-align:left}.mp-sort{flex:1 1 46%;min-width:0}.row-actions{gap:8px;flex-wrap:wrap}.row-actions .link-button{min-height:44px}.mp-days{grid-template-columns:1fr;gap:9px}.mp-day{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}.mp-day>span{flex-direction:column;align-items:flex-start;gap:1px}.mp-day strong{margin:0;font-size:22px}.mp-day p{display:none}.login-card,.license-card{padding:28px 22px}.app-toast{bottom:calc(88px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}
}
@media(prefers-reduced-motion:reduce){.button,.game-card,.sidebar nav button,input,select,.refreshing{transition:none}.record-new,.splash-dot,.refreshing{animation:none}.record-new{background:#edf3ff}.refreshing{opacity:.75}}
