/* Reuse EMS shell colors, typography and compact controls without coupling the two deployments. */
:root{font-family:"Segoe UI","Noto Sans CJK SC","Microsoft YaHei",sans-serif;font-size:14px;color:#173a5e;background:#eef1f5;--accent:#16a6bf;--border:#dbe4ec}
body{background:#eef1f5;color:#173a5e;line-height:1.4}
[hidden]{display:none!important}
.topbar{position:sticky;top:0;z-index:10;min-height:64px;padding:12px 26px;align-items:center;background:#fff;color:#173a5e;border-bottom:1px solid var(--border);box-shadow:0 1px 4px #173a5e08}
.topbar h1{font-size:20px;font-weight:650;margin:0}.eyebrow{font-size:10px;color:#678296;letter-spacing:.08em}.topbar .eyebrow{color:var(--accent)}
.tab{border-radius:4px;background:#fff;border:1px solid var(--border);color:#526e85;padding:7px 16px}.tab.active{background:#e8f7fa;color:#098ba3;border-color:#87d7e3}
.ems-sidebar{position:fixed;top:65px;bottom:0;left:0;width:178px;background:#f8fafc;border-right:1px solid var(--border);padding:22px 12px}.sidebar-heading{padding:0 12px 16px;font-weight:600}.sidebar-item{padding:12px;border-radius:4px;border-left:3px solid var(--accent);background:#e7f6fa;color:#078ca6}.ems-sidebar p{padding:10px 12px;color:#7890a3;font-size:12px;line-height:2}.sidebar-footer{position:absolute;bottom:24px;left:24px;font-size:12px;color:#8295a7}
main{width:auto;margin:20px 28px 60px 202px;max-width:1700px}.notice:empty{display:none}.notice{border-radius:4px;padding:10px 14px;background:#e8f7f2;font-weight:400;font-size:13px}.notice.error{background:#fff0f0;color:#bb4545}
.card,.table-card{border-color:var(--border);border-radius:5px;box-shadow:none;padding:20px}.table-card{padding:0}.login-card{max-width:430px;margin:70px auto;gap:18px}.login-card h2{font-size:20px}.login-card .muted{line-height:1.7}
.section-heading h2,.finance-workspace h2{font-size:18px}.section-heading{margin:12px 0 16px}.panel label,dialog label{font-size:13px;font-weight:400;color:#36566f}
.panel input,.panel textarea,.panel select,dialog input,dialog textarea,dialog select{border-radius:4px;padding:8px 10px;border-color:#cbd8e4;color:#173a5e}
.panel input:focus,.panel textarea:focus,.panel select:focus,dialog input:focus,dialog textarea:focus,dialog select:focus{outline:2px solid #16a6bf26;border-color:var(--accent)}
button{transition:background .15s}button:disabled{opacity:.55;cursor:wait}.primary,.secondary{font-size:13px;border-radius:4px;font-weight:500;padding:8px 16px}.primary{background:var(--accent);border:1px solid var(--accent)}.primary:hover{background:#1194ac}.secondary{background:#fff;border:1px solid #cbd8e4;color:#36566f}.secondary:hover{background:#f0f8fb}
.wallet-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid var(--accent);margin-bottom:16px}.wallet-banner strong{display:block;font-size:36px;font-weight:600;margin:5px 0;color:#173a5e;line-height:1.3}.wallet-banner p{margin:5px 0;color:#7890a3;font-size:13px}.wallet-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:430px}.wallet-actions small{width:100%;text-align:right;color:#7890a3;margin-top:7px}
.metrics{gap:12px}.metric,.metric.sms,.metric.voice,.metric.wechat,.metric.validity{background:#fff;border:1px solid var(--border);border-radius:5px;color:#173a5e;min-height:105px;padding:15px 18px}.metric span{font-size:12px;color:#73899b}.metric strong{font-size:25px;font-weight:600}.metric small{font-size:12px;color:#7890a3}.metric.validity strong{font-size:18px;align-self:center}
.billing-tabs{display:flex;border-bottom:1px solid var(--border);gap:2px;margin-top:22px}.billing-tabs button{border:0;background:transparent;padding:12px 22px;color:#637d91;cursor:pointer;border-bottom:2px solid transparent}.billing-tabs button.active{color:#109db6;background:#fff;border-bottom-color:var(--accent)}
th{background:#f4f7fa;color:#526e85;font-weight:500;font-size:12px}th,td{padding:11px 14px;border-bottom-color:#e4ebf1}td{font-size:13px;color:#36566f}tbody tr:hover{background:#f8fbfd}table{min-width:680px}.row-actions button{background:#eef8fb;color:#098aa3;border-radius:3px;font-size:12px}.form-grid{gap:14px}.hint{font-size:12px;margin:0}.finance-workspace{margin-top:30px}.empty-row{padding:30px;color:#8a9dac}.billing-status{display:inline-block;padding:3px 9px;border-radius:3px;background:#eaf4fb;color:#267ca9}.form-error{color:#bb4545;white-space:pre-wrap}.form-error:empty{display:none}
dialog{border:1px solid #cfdae5;border-radius:6px;max-width:min(900px,95vw);box-shadow:0 15px 60px #173a5e30;padding:0;color:#173a5e}dialog::backdrop{background:#173a5e55}.dialog-form{display:grid;gap:15px;padding:26px;min-width:min(460px,90vw);max-height:85vh;overflow:auto}.dialog-form h2{font-size:20px;margin:0}.dialog-form p{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e4ebf1;padding-top:16px}#paymentQr{text-align:center}#paymentQr img{display:block;margin:auto;max-width:100%}#financeUpload{display:grid;gap:14px}#walletLedgerDialog{width:min(1050px,95vw)}
#credentialDialog{padding:24px;width:min(1050px,95vw);max-height:85vh;overflow:auto}#credentialRows{margin:18px 0}#credentialSecrets{white-space:pre-wrap;overflow-wrap:anywhere}#credentialDialog h2{margin-top:0}
@media(max-width:1050px){.ems-sidebar{width:145px}main{margin-left:163px;margin-right:18px}.wallet-banner{align-items:flex-start;flex-direction:column}.wallet-actions{justify-content:flex-start}.wallet-actions small{text-align:left}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ems-sidebar{display:none}main{margin:14px 12px 30px}.topbar{position:static;padding:14px;gap:12px;align-items:flex-start}.topbar nav{width:100%}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:12px!important}.metric strong{font-size:22px}.metric.validity strong{font-size:14px}.login-card{margin:30px auto}.dialog-form{padding:20px}.billing-tabs button{padding:12px 15px}}
