/* NewBuddy customer workspace. Scoped to avoid changing administrator pages. */
.portal-ready { --green:#16866b; --blue:#16866b; --muted:#7a8984; background:#f5f7f8; color:#263b35; font-family:Inter,"Microsoft YaHei",system-ui,sans-serif; }
.portal-ready > .site-header,.portal-ready > .shell,.portal-ready > footer { display:none; }
#customer-portal [hidden] { display:none!important; }
#customer-portal button,#customer-portal input { font:inherit; }
#customer-portal button { cursor:pointer; }
#customer-portal button:disabled { opacity:.45; cursor:not-allowed; }
#customer-portal button:focus-visible,#customer-portal a:focus-visible,#customer-portal input:focus-visible { outline:3px solid #56bfa1; outline-offset:3px; }
#customer-portal button { border-radius:8px; box-shadow:none; }
#customer-portal button:not(.ghost):not([data-login-view]):not([data-portal-nav]):not(#portal-logout):not([data-go]):not(.tab):not([data-copy]):not([data-copy-command]):not(.ios-copy-card) { background:#16866b; color:#fff; border:1px solid #16866b; }
#portal-sidebar { position:fixed; inset:0 auto 0 0; z-index:20; width:232px; display:flex; flex-direction:column; padding:28px 18px 20px; border-right:1px solid #e3ebe7; background:white; }
.portal-brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:#183c30; font-size:19px; font-weight:750; }
.portal-brand > span,.portal-login-brand { display:grid; place-items:center; background:#42b396; color:white; border-radius:12px; width:40px; height:40px; font-weight:800; }
.portal-brand small { display:block; margin-top:3px; color:#89968f; font-size:11px; font-weight:400; }
.portal-side-balance { display:grid; gap:10px; margin:30px 0 24px; padding:20px; border-radius:12px; color:#fff; background:linear-gradient(115deg,#47b899,#259479); }
.portal-side-balance small { color:#e1fff4; }.portal-side-balance strong { font-size:30px; font-variant-numeric:tabular-nums; }
#portal-sidebar nav { display:grid; gap:5px; }
#portal-sidebar nav button { width:100%; display:flex; align-items:center; gap:13px; padding:12px 14px; border:0; background:transparent; color:#64766e; text-align:left; font-size:14px; font-weight:500; }
#portal-sidebar nav button:hover,#portal-sidebar nav button.selected { background:#e9f5ef; color:#137e64; }
.portal-nav-icon { display:inline-grid; place-items:center; width:20px; font-size:20px; }
#portal-logout { margin-top:auto; padding:15px 4px 0; border:0; border-top:1px solid #edf1ef; color:#788780; background:white; text-align:left; font-size:12px!important; }
#portal-member { margin-left:232px; min-height:100vh; }
.portal-topbar { height:76px; background:white; border-bottom:1px solid #e9eeeb; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 40px; }
.portal-topbar h1 { font-size:17px; font-weight:650; }.portal-topbar > span { color:#849189; font-size:12px; }
.portal-content { max-width:1120px; margin:auto; padding:36px 40px 60px; }
.portal-page-heading { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:25px; }
.portal-page-heading small { font-size:10px; letter-spacing:.16em; color:#329f81; font-weight:700; }.portal-page-heading h2 { font-size:27px; margin:8px 0; }.portal-page-heading p { margin:0; color:#829189; font-size:13px; }
#portal-refreshed { font-size:11px; color:#8b9891; }
#customer-portal .panel,#customer-portal .portal-box { width:100%; margin:0 0 20px; padding:26px; border:1px solid #e4eae6; border-radius:12px; background:white; box-shadow:0 3px 10px #19342b03; }
#customer-portal h2 { font-size:21px; }#customer-portal h3 { font-size:15px; margin:0 0 14px; }
.portal-box > p { color:#7e8c85; font-size:13px; line-height:1.8; }
#customer-portal #account-card { background:linear-gradient(110deg,#46b999,#218d73); border:0; color:white; }
#customer-portal .account-head { padding:0; border:0; align-items:center; }
#customer-portal .account-head .label { color:#def7ed; }#customer-portal .account-head h2 { font-size:15px; margin:5px 0 0; font-weight:500; }
#customer-portal .account-actions .windows-setup-button,#customer-portal .account-actions .tutorial-jump { display:none; }
#customer-portal #refresh { color:white; background:#ffffff14; border:1px solid #ffffff55; padding:9px 12px; }
#customer-portal .balance { margin:20px 0 0; padding:0; border:0; background:none; }#customer-portal .balance > span { color:#dcf7ed; font-size:12px; }
#customer-portal #points-remaining { display:block; color:white; font-size:44px; font-weight:700; margin:8px 0 16px; letter-spacing:-1px; }
#customer-portal .balance small { color:#d8f5e9; }#customer-portal .progress { background:#ffffff30; height:4px; margin:12px 0; }#customer-portal .progress i { background:#ddffef; }
#customer-portal #recharge-current { margin-top:18px; background:#ffffff19; color:white; border-color:#ffffff50; }
.portal-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:22px; }.portal-metrics > div { padding:19px 22px; border:1px solid #e4eae6; border-radius:10px; background:white; }.portal-metrics small { color:#849189; font-size:12px; }.portal-metrics strong { display:block; margin-top:10px; font-size:23px; font-weight:600; }
.portal-quick-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-bottom:22px; }.portal-quick-grid button { text-align:left; padding:22px; background:white; border:1px solid #e4eae6; color:#225c47; }.portal-quick-grid strong { display:block; font-size:14px; }.portal-quick-grid span { display:block; margin-top:9px; color:#819087; font-size:12px; line-height:1.6; }
.portal-start { list-style:none; margin:0; padding:0; display:grid; gap:10px; }.portal-start li { display:flex; align-items:center; gap:14px; padding:15px; background:#f6f9f7; border-radius:8px; font-size:13px; line-height:1.7; color:#5e7569; }.portal-start b { color:#22a180; font-size:17px; }
#portal-config-fields { background:white; border:1px solid #e4eae6; border-radius:12px; padding:24px; margin-bottom:20px; }#customer-portal .fields { margin:0; }#customer-portal .field { min-width:0; }#customer-portal code { overflow-wrap:anywhere; word-break:break-all; }
#customer-portal .secret { -webkit-text-security:disc; }#customer-portal .fields .secret { max-height:55px; overflow:hidden; }
#customer-portal .tabs { flex-wrap:wrap; }#customer-portal .tab.active { background:#e7f5ed; color:#137e64; border-color:#71c9b0; }
#customer-portal .quick-badge,#customer-portal .badge { background:#eaf6ef; color:#258d6b; border-color:#d8eade; }#customer-portal .download-tool,#customer-portal .notice,#customer-portal .quick-setup { background:#f4faf7; border-color:#dceee4; }
.portal-notice { padding:16px 18px; background:#f5f9f6; border-left:3px solid #5ebc9a; color:#637c6d; font-size:13px; line-height:1.8; margin:20px 0; }
#customer-portal [data-go] { padding:12px 18px; border:1px solid #d7e7dd; color:#207e5d; background:#f1f9f4; }
.portal-table-scroll { overflow:auto; width:100%; }.portal-table-scroll table { border-collapse:collapse; width:100%; font-size:12px; text-align:left; }.portal-table-scroll th { color:#8c978f; font-weight:500; background:#fafcfb; }.portal-table-scroll th,.portal-table-scroll td { padding:14px 12px; border-bottom:1px solid #edf1ed; white-space:nowrap; }.portal-table-scroll td { color:#4e6156; font-variant-numeric:tabular-nums; }.portal-empty { text-align:center; padding:44px!important; color:#8b968e!important; }
.portal-pager { display:flex; justify-content:flex-end; align-items:center; gap:14px; margin-top:20px; font-size:12px; color:#89978e; }.portal-pager button { padding:7px 10px; }
#customer-portal .usage-mini { border:0; padding:0; margin:0; }#customer-portal .usage-list > div { padding:13px 0; }
#portal-guest { min-height:100vh; display:grid; place-items:center; padding:36px 18px; background:radial-gradient(ellipse at 50% 30%,#e9f4ee55,transparent 55%),#f7f9fa; }
.portal-login-card { width:min(100%,420px); padding:38px 34px 28px; background:#fff; border:1px solid #e6ece8; border-radius:17px; box-shadow:0 20px 55px #142c2610; text-align:center; }
.portal-login-brand { width:58px; height:58px; margin:auto; font-size:30px; text-decoration:none; box-shadow:0 9px 23px #43af902b; border-radius:17px; }.portal-login-card h1 { margin:20px 0 8px; font-size:24px; font-weight:650; }.portal-login-card > p { margin:0 0 24px; color:#8a9790; font-size:12px; }
.portal-login-tabs { display:inline-flex; padding:4px; background:#f4f7f5; border-radius:9px; margin-bottom:24px; }.portal-login-tabs button { padding:9px 16px; border:0; color:#6c8075; background:none; font-size:13px!important; }.portal-login-tabs button.selected { background:#49b497; color:white; }
#customer-portal .portal-login-card .panel { padding:0; border:0; margin:0; box-shadow:none; text-align:left; }.portal-login-card .package-line { display:none!important; }#customer-portal .portal-login-card .input-row { display:flex; flex-direction:column; gap:14px; }.portal-login-card input { width:100%; min-width:0; height:46px; border:1px solid #dce7df; border-radius:8px; background:white; padding:12px; }.portal-login-card .input-row button { width:100%; height:46px; }.portal-login-card label { font-size:12px; color:#809087; }.portal-login-card .message { margin:12px 0; font-size:12px; }
.portal-video { display:inline-block; margin:8px 0 19px; color:#229d79; font-size:12px; text-decoration:none; }.portal-login-note { display:block; font-size:11px; color:#a0aaa4; line-height:1.9; }
@media(max-width:1000px) { #portal-sidebar { width:200px; }#portal-member { margin-left:200px; }.portal-content { padding:26px 22px; }.portal-topbar { padding:0 24px; }.portal-quick-grid { grid-template-columns:1fr; }.portal-quick-grid button { padding:16px 20px; }.portal-metrics { gap:9px; }.portal-metrics > div { padding:16px; }.portal-metrics strong { font-size:19px; } }
@media(max-width:680px) { #portal-sidebar { position:sticky; top:0; width:100%; padding:12px; border-right:0; border-bottom:1px solid #e3ebe7; }.portal-brand { font-size:15px; }.portal-brand > span { width:28px; height:28px; font-size:17px; }.portal-brand small,.portal-side-balance { display:none; }#portal-sidebar nav { display:flex; overflow-x:auto; gap:4px; margin-top:12px; }#portal-sidebar nav button { flex-shrink:0; width:auto; padding:9px 11px; font-size:12px; gap:6px; }.portal-nav-icon { display:none; }#portal-logout { position:absolute; right:14px; top:17px; padding:0; border:0; }#portal-member { margin-left:0; }.portal-topbar { height:54px; padding:0 18px; }.portal-topbar h1 { font-size:15px; }.portal-content { padding:22px 14px; }.portal-page-heading h2 { font-size:22px; }#portal-refreshed { display:none; }#customer-portal .panel,#customer-portal .portal-box { padding:20px; border-radius:10px; }.portal-metrics { grid-template-columns:1fr 1fr; }.portal-metrics > div:last-child { grid-column:1/-1; }.portal-metrics > div:last-child strong { font-size:16px; }.portal-pager { justify-content:center; gap:8px; font-size:10px; }.portal-login-card { padding:30px 24px; }.portal-table-scroll table { font-size:11px; } }
