/* 小韭菜对接 v1.0.55 · pure white interface */
:root{
  color-scheme:light;
  --bg:#ffffff;--surface:#ffffff;--soft:#f7f7f7;--soft-blue:#f7f7f7;--line:#e7e8ed;--line-strong:#e7e8ed;
  --ink:#1e1f20;--ink-2:#4a4e60;--muted:#717792;--faint:#7f85a2;
  --primary:#7f85a2;--primary-deep:#717792;--primary-soft:#f1f4fc;
  --success:#0f9f6e;--success-soft:#f1f4fc;--warning:#e98a00;--warning-soft:#fff6df;--danger:#dc3545;--danger-soft:#f7f7f7;
  --shadow-sm:0 1px 2px rgba(48,42,35,.04),0 4px 14px rgba(48,42,35,.04);
  --shadow:0 16px 45px rgba(48,42,35,.09);--shadow-lg:0 28px 80px rgba(48,42,35,.14);
  --radius-sm:12px;--radius:18px;--radius-lg:26px;--sidebar:272px;--topbar:82px;
  font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
*{box-sizing:border-box}html{min-height:100%;background:#ffffff;scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:#ffffff;color:var(--ink);font-size:14px;line-height:1.55;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{border:0;cursor:pointer}img{max-width:100%}h1,h2,h3,h4,p{overflow-wrap:anywhere}.hidden{display:none!important}.right{text-align:right}.full{width:100%}.small{min-height:34px!important;padding:7px 12px!important}.span-2{grid-column:span 2}.shell{min-height:100vh;background:#ffffff}.background-grid{display:none}
::selection{color:#717792;background:#e7e8ed}:focus-visible{outline:3px solid rgba(150,98,63,.2);outline-offset:2px}

/* Reusable controls */
.button,.action-button,.text-button,.icon-button,.close-button,.menu-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;font-weight:750;transition:transform .16s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease,opacity .18s ease}
.button{min-height:42px;padding:10px 17px;border:1px solid transparent;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0) scale(.98)}.button:disabled{cursor:not-allowed;opacity:.54}.button.primary{color:#ffffff;background:linear-gradient(135deg,var(--primary),#7f85a2);box-shadow:0 8px 20px rgba(150,98,63,.2)}.button.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-deep),#7f85a2);box-shadow:0 12px 26px rgba(150,98,63,.25)}.button.secondary{color:#717792;background:#ffffff;border-color:#e7e8ed;box-shadow:var(--shadow-sm)}.button.secondary:hover:not(:disabled){border-color:#d8c9b5;background:#ffffff}.button.ghost{color:var(--ink-2);background:#ffffff;border-color:var(--line)}.button.ghost:hover{background:var(--soft)}.button.danger{color:#b42318;background:var(--danger-soft);border-color:#ffd5d9}.text-button{padding:9px 12px;color:var(--muted);background:transparent}.text-button:hover{color:var(--danger);background:var(--danger-soft)}
.action-button{min-height:32px;margin:2px 0 2px 6px;padding:6px 11px;color:#4a4e60;background:#ffffff;border:1px solid var(--line);font-size:12px}.action-button:hover{color:#717792;border-color:#d8c9b5;background:#ffffff}.action-button.primary-action{color:#717792;border-color:#e7e8ed;background:#f7f7f7}.action-button.danger{color:#b42318}.action-button.danger:hover{border-color:#fecdd3;background:var(--danger-soft)}
.icon-button,.close-button,.menu-button{width:40px;height:40px;padding:0;color:var(--muted);background:#ffffff;border:1px solid var(--line)}.icon-button:hover,.close-button:hover,.menu-button:hover{color:var(--primary);border-color:#e7e8ed;background:#ffffff}.close-button{font-size:22px;font-weight:400}.menu-button{display:none;font-size:19px}

label{display:grid;gap:7px;color:#4a4e60;font-size:12px;font-weight:750}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;color:var(--ink);background:#ffffff;border:1px solid var(--line-strong);border-radius:12px;outline:none;box-shadow:0 1px 2px rgba(48,42,35,.02);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}textarea{min-height:128px;resize:vertical;line-height:1.7}input::placeholder,textarea::placeholder{color:#9398ae}input:hover,select:hover,textarea:hover{border-color:#d8c9b5}input:focus,select:focus,textarea:focus{border-color:#9398ae;box-shadow:0 0 0 4px rgba(150,98,63,.09)}input[type=checkbox]{width:18px;min-height:18px;height:18px;padding:0;accent-color:var(--primary)}select{cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.auth-form{display:grid;gap:16px}.form-heading h2{margin:0 0 4px;font-size:25px;letter-spacing:-.03em}.form-heading p{margin:0;color:var(--muted)}.field-hint,.verification-field>small,label small{color:var(--faint);font-size:11px;font-weight:500;line-height:1.55}.password-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;position:relative}.password-wrap input{padding-right:66px;grid-area:1/1}.password-wrap button{grid-area:1/1;justify-self:end;z-index:1;padding:0 13px;color:var(--primary);background:transparent;font-size:12px;font-weight:750}.verification-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.verification-row .button{min-width:120px}

/* Login */
.auth-layout,.admin-auth{min-height:100vh;padding:28px;background:#ffffff}.auth-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);gap:28px}.brand-panel,.admin-login-brand{position:relative;display:flex;min-height:calc(100vh - 56px);padding:44px;overflow:hidden;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:30px;background:#ffffff;box-shadow:var(--shadow)}.brand-panel::after,.admin-login-brand::after{content:"";position:absolute;width:420px;height:420px;right:-210px;bottom:-250px;border:72px solid #f7f7f7;border-radius:50%;pointer-events:none}.brand{display:flex;align-items:center;gap:11px;font-weight:850}.brand-large{font-size:17px}.brand-mark{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:14px;color:#ffffff;background:linear-gradient(145deg,#7f85a2,#9398ae);box-shadow:0 10px 24px rgba(150,98,63,.22);font-size:18px;font-weight:900}.hero-copy,.admin-login-copy{position:relative;z-index:1;max-width:660px}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;color:#717792;font-size:11px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.eyebrow::before,.section-kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:#7f85a2;box-shadow:0 0 0 5px #f1f4fc}.hero-copy h1,.admin-login-copy h1{margin:0;color:#1e1f20;font-size:clamp(36px,4.5vw,68px);line-height:1.08;letter-spacing:-.055em}.hero-copy h1 em{color:var(--primary);font-style:normal}.hero-copy p,.admin-login-copy p{max-width:600px;margin:22px 0 0;color:var(--muted);font-size:16px;line-height:1.85}.feature-list{position:relative;z-index:1;display:grid;margin:0;padding:0;gap:10px;list-style:none}.feature-list li{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid #f1f4fc;border-radius:16px;background:#ffffff;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.feature-list li:hover{transform:translateX(4px);border-color:#e7e8ed;box-shadow:var(--shadow-sm)}.feature-list li>span{display:grid;place-items:center;flex:0 0 35px;height:35px;border-radius:11px;color:#717792;background:#f1f4fc;font-size:11px;font-weight:900}.feature-list strong,.feature-list small{display:block}.feature-list small{margin-top:2px;color:var(--muted)}.auth-panel{display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,450px);padding:32px;border:1px solid var(--line);border-radius:26px;background:#ffffff;box-shadow:var(--shadow)}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:28px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.tab{min-height:38px;color:var(--muted);background:transparent;border-radius:10px;font-weight:800;transition:all .18s ease}.tab.active{color:#717792;background:#ffffff;box-shadow:0 2px 8px rgba(48,42,35,.1)}.admin-login-wrap{display:grid;width:min(1180px,100%);margin:auto;grid-template-columns:minmax(0,1.15fr) minmax(380px,.75fr);gap:28px;align-items:stretch}.admin-login-brand{min-height:650px}.admin-login-card{align-self:center}.login-trust{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px}.login-trust span{padding:8px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#ffffff;font-size:11px;font-weight:750}
.message{min-height:0;margin:10px 0 0;color:#c43242;font-size:12px;font-weight:650}.message:empty{display:none}.message.success{color:var(--success)}.page-message:not(:empty){margin:0 0 14px;padding:12px 14px;border:1px solid #e7e8ed;border-radius:13px;color:#717792;background:#f7f7f7}.boot-screen{display:none!important}

/* Application frame */
.app-layout{min-height:100vh;background:#ffffff}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;display:flex;width:var(--sidebar);padding:22px 16px 16px;flex-direction:column;background:#ffffff;border-right:1px solid var(--line);transition:transform .24s cubic-bezier(.2,.8,.2,1)}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 20px}.brand-copy strong,.brand-copy span{display:block}.brand-copy strong{color:#1e1f20;font-size:14px}.brand-copy span{margin-top:2px;color:#7f85a2;font-size:9px;font-weight:800;letter-spacing:.12em}.sidebar-account{display:flex;align-items:center;gap:10px;margin:0 3px 16px;padding:11px;border:1px solid var(--line);border-radius:15px;background:#ffffff;box-shadow:var(--shadow-sm)}.sidebar-account .avatar,.qq-avatar,.table-avatar{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;overflow:hidden;border-radius:13px;color:#ffffff;background:linear-gradient(145deg,#7f85a2,#9398ae);font-weight:850}.sidebar-account img,.qq-avatar img,.table-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-account strong,.sidebar-account small{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account strong{font-size:12px}.sidebar-account small{color:var(--muted);font-size:10px}.console-chip{display:flex;align-items:center;gap:10px;margin:0 3px 18px;padding:10px 11px;border-radius:14px;background:#f7f7f7;border:1px solid #e7e8ed}.console-chip strong,.console-chip small{display:block}.console-chip strong{font-size:11px}.console-chip small{color:var(--muted);font-size:9px}.console-dot{width:9px;height:9px;border-radius:50%;background:#22b986;box-shadow:0 0 0 5px #e7e8ed}.sidebar-nav{display:grid;gap:4px;overflow:auto;padding:0 3px 12px}.nav-label{padding:10px 10px 5px;color:#9398ae;font-size:9px;font-weight:850;letter-spacing:.12em}.nav-label-spaced{margin-top:8px}.nav-item{position:relative;display:flex;align-items:center;gap:11px;min-height:43px;padding:9px 12px;border-radius:12px;color:#717792;font-size:12px;font-weight:720;transition:color .16s ease,background .16s ease,transform .16s ease}.nav-item:hover{color:#717792;background:#f7f7f7;transform:translateX(2px)}.nav-item.active{color:#717792;background:#f1f4fc}.nav-item.active::after{content:"";position:absolute;right:8px;width:5px;height:5px;border-radius:50%;background:#7f85a2}.nav-icon{display:grid;place-items:center;width:22px;color:#7f85a2;font-size:16px}.nav-item.active .nav-icon{color:#7f85a2}.sidebar-foot{margin-top:auto;padding:12px 3px 0;border-top:1px solid var(--line)}.sidebar-foot>*{width:100%}.workspace{min-height:100vh;margin-left:var(--sidebar);background:#ffffff}.topbar{position:sticky;z-index:30;top:0;display:flex;min-height:var(--topbar);padding:15px clamp(22px,3vw,42px);align-items:center;justify-content:space-between;gap:18px;background:rgba(255,253,248,.94);border-bottom:1px solid var(--line);backdrop-filter:saturate(180%) blur(15px)}.topbar-title{display:flex;align-items:center;gap:12px}.topbar-title h2{margin:2px 0 0;color:#1e1f20;font-size:20px;letter-spacing:-.025em}.breadcrumb{margin:0;color:#7f85a2;font-size:10px}.topbar-actions{display:flex;align-items:center;gap:9px}.content-view,.admin-content{width:min(1480px,100%);margin:0 auto;padding:34px clamp(22px,3.2vw,48px) 72px;background:#ffffff}.customer-intro,.page-intro,.mapping-head,.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.customer-intro h1,.page-intro h1,.mapping-head h1,.section-heading h1,.section-heading h2{margin:0;color:#1e1f20;font-size:clamp(26px,3vw,39px);line-height:1.18;letter-spacing:-.045em}.customer-intro p,.page-intro p,.mapping-head p,.section-heading p,.table-head p{margin:7px 0 0;color:var(--muted)}.standalone-heading{margin-top:30px}.release-footer{position:fixed;z-index:20;right:18px;bottom:12px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:#9398ae;background:rgba(255,253,248,.92);font-size:9px;backdrop-filter:blur(10px)}

/* Cards, counters and tables */
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{position:relative;min-height:146px;padding:22px;overflow:hidden;border:1px solid transparent;border-radius:21px;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px rgba(48,42,35,.11)}.stat-total{color:#717792;background:linear-gradient(145deg,#f1f4fc,#f7f7f7);border-color:#e7e8ed}.stat-healthy{color:#087955;background:linear-gradient(145deg,#e7e8ed,#f7f7f7);border-color:#c8efdf}.stat-warning{color:#a46100;background:linear-gradient(145deg,#fff1d2,#f7f7f7);border-color:#f7dfac}.stat-label{display:block;font-size:12px;font-weight:800}.stat-card strong{display:block;margin-top:12px;font-size:38px;line-height:1;letter-spacing:-.05em}.stat-card p{margin:9px 0 0;opacity:.72;font-size:11px}.stat-watermark{position:absolute;right:18px;bottom:8px;font-size:62px;font-weight:900;opacity:.07}.table-card,.source-panel,.relation-panel,.selection-panel,.storage-form-card,.storage-current-card,.persistence-card{border:1px solid var(--line);border-radius:21px;background:#ffffff;box-shadow:var(--shadow-sm)}.table-card{overflow:hidden}.table-head{display:flex;min-height:72px;padding:18px 21px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.table-head h3{margin:0;color:#1e1f20;font-size:16px}.table-wrap{overflow:auto}.table-wrap table{min-width:820px}table{width:100%;border-collapse:collapse}th,td{padding:14px 18px;border-bottom:1px solid #f1f4fc;text-align:left;vertical-align:middle}th{color:#7f85a2;background:#ffffff;font-size:10px;font-weight:850;letter-spacing:.04em;white-space:nowrap}td{color:#4a4e60;font-size:12px;transition:background .16s ease}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#ffffff}td strong,td small{display:block}td strong{color:#1e1f20}td small{margin-top:3px;color:#7f85a2;font-size:10px}td code,.storage-facts code{padding:3px 6px;border-radius:7px;color:#4a4e60;background:#f7f7f7;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.empty-state{display:grid;min-height:250px;padding:42px 20px;place-items:center;text-align:center}.empty-state h3{margin:10px 0 4px}.empty-state p{margin:0 0 18px;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;color:#7f85a2;background:#f1f4fc;font-size:25px}.empty-cell{padding:48px!important;color:#7f85a2;text-align:center!important}.engine-badge,.badge,.status-pill,.announcement-section{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;color:#4a4e60;background:#f1f4fc;font-size:10px;font-weight:820;white-space:nowrap}.badge.success,.status-pill.success{color:#087955;background:#e7e8ed}.badge.failed,.status-pill.danger{color:#b42318;background:#f7f7f7}.badge.warn{color:#9b5c00;background:#fff4dc}.status-dot{width:6px;height:6px;border-radius:50%;background:#7f85a2}.status-dot.green{background:#16a875}.status-dot.red{background:#dc3545}

/* Front connection and mapping */
.connection-stats{margin-top:4px}.announcement-board{display:grid;gap:10px;margin-bottom:18px}.announcement-card{position:relative;padding:17px 19px 17px 23px;border:1px solid #e7e8ed;border-radius:17px;background:#ffffff;box-shadow:var(--shadow-sm)}.announcement-card::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 5px 5px 0;background:linear-gradient(#7f85a2,#9398ae)}.announcement-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}.announcement-card-head h3{margin:0;font-size:14px}.announcement-card-head span{color:#7f85a2;font-size:10px}.announcement-html{color:#4a4e60;font-size:12px;line-height:1.78}.announcement-html>:first-child{margin-top:0}.announcement-html>:last-child{margin-bottom:0}.announcement-html a{color:#7f85a2;text-decoration:underline;text-underline-offset:3px}.announcement-html img{height:auto;margin:10px 0;border-radius:12px}.announcement-html table{width:100%}.announcement-html pre,.announcement-html code{border-radius:8px;color:#4a4e60;background:#f7f7f7;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.announcement-html code{padding:2px 5px}.announcement-html pre{overflow:auto;padding:12px}.mapping-switcher{display:flex;align-items:flex-end;gap:10px;margin-bottom:16px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#ffffff}.mapping-switcher label{min-width:min(420px,100%)}.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.mapping-card{padding:19px;border:1px solid var(--line);border-radius:18px;background:#ffffff;box-shadow:var(--shadow-sm);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.mapping-card:hover{transform:translateY(-2px);border-color:#e7e8ed;box-shadow:var(--shadow)}.mapping-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.mapping-card h3{margin:0;font-size:15px}.mapping-card p{margin:5px 0 0;color:var(--muted);font-size:11px}.mapping-metrics{display:flex;flex-wrap:wrap;gap:7px}.mapping-save-bar{position:sticky;z-index:12;bottom:18px;display:flex;margin-top:18px;padding:16px 18px;align-items:center;justify-content:space-between;gap:18px;border:1px solid #e7e8ed;border-radius:18px;background:rgba(255,253,248,.96);box-shadow:0 16px 45px rgba(48,42,35,.13);backdrop-filter:blur(15px)}.mapping-save-bar strong{display:block}.mapping-save-bar p,.mapping-save-bar small{margin:3px 0 0;color:var(--muted);font-size:11px}.mapping-empty{grid-column:1/-1;padding:44px;border:1px dashed var(--line-strong);border-radius:18px;color:var(--muted);text-align:center}.connection-note,.source-note{margin:0;padding:12px 14px;border:1px solid #e7e8ed;border-radius:13px;color:#717792;background:#ffffff;font-size:11px;line-height:1.7}

/* Admin overview and separate pages */
.admin-page{min-width:0}.overview-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:18px}.quick-panel{overflow:hidden}.quick-grid{display:grid;padding:12px}.quick-action{display:flex;align-items:center;gap:13px;padding:14px;border-radius:15px;transition:background .16s ease,transform .16s ease}.quick-action:hover{background:#f7f7f7;transform:translateX(3px)}.quick-icon{display:grid;place-items:center;flex:0 0 39px;height:39px;border-radius:12px;color:#717792;background:#f1f4fc;font-size:16px}.quick-action strong,.quick-action small{display:block}.quick-action small{margin-top:2px;color:var(--muted);font-size:10px}.quick-action b{margin-left:auto;color:#7f85a2}.persistence-card{display:flex;padding:22px;align-items:flex-start;gap:14px}.persistence-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:14px;color:#ffffff;background:linear-gradient(145deg,#13a978,#53c49e);box-shadow:0 9px 20px rgba(15,159,110,.18);font-weight:900}.storage-copy h3{margin:0}.storage-copy>p{margin:7px 0 16px;color:var(--muted)}.storage-facts{display:grid;margin:0;grid-template-columns:1fr 1fr;gap:10px}.storage-facts>div{padding:10px;border-radius:12px;background:#f7f7f7}.storage-facts dt{color:var(--faint);font-size:9px}.storage-facts dd{margin:3px 0 0;color:#4a4e60;font-size:11px;font-weight:750}.persistence-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.persistence-meta span{display:flex;align-items:center;gap:5px;color:#717792;font-size:9px}.persistence-meta i{width:5px;height:5px;border-radius:50%;background:#18aa79}.admin-section-stack{display:grid;gap:18px}.admin-list-section{margin-top:22px}.storage-setup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:18px;align-items:start}.storage-form{display:grid;padding:21px;gap:17px}.storage-current-body{padding:21px}.storage-facts-wide{display:grid;margin:0;gap:0}.storage-facts-wide>div{display:grid;padding:12px 0;grid-template-columns:130px minmax(0,1fr);gap:12px;border-bottom:1px solid var(--line)}.storage-facts-wide>div:last-child{border:0}.storage-facts-wide dt{color:var(--muted)}.storage-facts-wide dd{margin:0;color:#4a4e60;text-align:right;font-weight:750;overflow-wrap:anywhere}.storage-actions{justify-content:flex-end}.setup-warning{padding:13px;border-radius:13px;color:#8b5d0a;background:#f1f4fc;border:1px solid #f5e2b4;font-size:11px}.toggle-options{display:grid;gap:9px}.migration-choice{display:flex;min-height:68px;padding:13px;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:14px;background:#ffffff;cursor:pointer}.migration-choice:hover{border-color:#d8c9b5;background:#ffffff}.migration-choice strong,.migration-choice small{display:block}.migration-choice small{margin-top:3px}.mail-guide{display:grid;gap:17px}.setup-step{display:flex;gap:12px}.setup-step>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:10px;color:#717792;background:#f1f4fc;font-weight:900}.setup-step strong{display:block}.setup-step p{margin:3px 0 0;color:var(--muted)}.mail-test-box{display:grid;padding:14px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;border:1px solid var(--line);border-radius:15px;background:#ffffff}
.user-table-cell{display:flex;align-items:center;gap:10px;min-width:160px}.user-table-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-avatar{flex-basis:36px;width:36px;height:36px;border-radius:11px}.table-role{display:inline-flex;padding:5px 9px;border-radius:999px;color:#4a4e60;background:#f1f4fc;font-size:10px;font-weight:800}.table-role.admin{color:#717792;background:#f1f4fc}

/* Source database */
.source-panel{overflow:hidden}.source-list{display:grid}.source-item{display:flex;padding:18px 20px;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);transition:background .16s ease}.source-item:last-child{border-bottom:0}.source-item:hover{background:#ffffff}.source-item h4{margin:0 0 4px}.source-item p,.source-item small{margin:0;color:var(--muted);font-size:11px}.source-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.source-detail{display:grid;gap:16px}.source-detail-body{padding:18px}.relation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.relation-grid-single{grid-template-columns:1fr}.relation-panel,.selection-panel{padding:17px}.relation-panel h4,.selection-panel h4{margin:0 0 10px}.preview-table{overflow:auto;border:1px solid var(--line);border-radius:14px}.selection-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.selection-head,.selection-tools{display:flex;align-items:center;justify-content:space-between;gap:10px}.selection-tools{justify-content:flex-start;margin:10px 0}.selection-items{display:grid;max-height:320px;overflow:auto;gap:7px}.selection-item{display:flex;padding:10px;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.selection-item:hover{border-color:#d8c9b5;background:#ffffff}.selection-item strong,.selection-item small{display:block}.selection-item small{color:var(--muted)}.selection-empty{padding:25px;color:var(--muted);text-align:center}.auto-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.auto-summary>div{padding:12px;border-radius:13px;background:#f7f7f7}.auto-summary strong,.auto-summary small{display:block}.auto-summary small{color:var(--muted)}.auto-loading,.auto-note,.auto-issue{padding:12px;border-radius:12px;color:#717792;background:#ffffff}.auto-issue{color:#9b5c00;background:#f1f4fc}

/* Announcements */
.announcement-admin-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:18px;align-items:start}.announcement-editor{overflow:hidden}.padded-form{display:grid;padding:21px;gap:16px}.html-preview-wrap{display:grid;gap:8px}.html-preview-wrap>strong{color:#4a4e60;font-size:11px}.html-preview-wrap>div{min-height:120px;padding:15px;border:1px dashed #e7e8ed;border-radius:14px;background:#ffffff}.empty-preview{display:grid!important;place-items:center;color:#7f85a2}.announcement-list{display:grid;padding:0 19px 8px}.announcement-list-item{padding:18px 1px;border-bottom:1px solid var(--line)}.announcement-list-item:last-child{border-bottom:0}.announcement-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.announcement-list-head>div{display:flex;gap:6px}.announcement-list-head small{color:#7f85a2;font-size:10px}.announcement-list-item h4{margin:10px 0 8px}.announcement-html.compact{max-height:140px;overflow:auto;padding:11px;border-radius:11px;background:#f7f7f7}.item-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.compact-empty{min-height:210px!important}

/* Dialogs, confirmations and toast */
dialog{width:min(720px,calc(100% - 28px));max-height:calc(100vh - 32px);padding:0;overflow:auto;border:0;border-radius:24px;background:#ffffff;box-shadow:var(--shadow-lg)}dialog::backdrop{background:rgba(247,243,235,.78);backdrop-filter:blur(10px)}dialog[open]{animation:dialogIn .22s cubic-bezier(.2,.8,.2,1)}@keyframes dialogIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.modal-card{display:grid;padding:24px;gap:18px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.modal-head h2{margin:0;font-size:24px;letter-spacing:-.035em}.modal-head p{margin:5px 0 0;color:var(--muted)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.publish-preview{display:grid;gap:14px}.app-confirm-dialog{width:min(460px,calc(100% - 28px))}.confirm-card{display:grid;padding:25px;gap:17px}.confirm-copy h3{margin:4px 0 7px;font-size:21px}.confirm-copy p{margin:0;color:var(--muted)}.confirm-kicker{color:#7f85a2;font-size:10px;font-weight:850;letter-spacing:.1em}.confirm-visual{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;color:#7f85a2;background:#f1f4fc;font-size:22px}.confirm-detail{padding:11px 13px;border-radius:12px;color:#717792;background:#f7f7f7}.confirm-actions{display:flex;justify-content:flex-end;gap:9px}.toast-region{position:fixed;z-index:1000;right:22px;bottom:22px;display:grid;width:min(360px,calc(100% - 32px));gap:9px}.toast{display:flex;padding:13px 14px;align-items:center;gap:10px;border:1px solid #e7e8ed;border-radius:15px;color:#4a4e60;background:#ffffff;box-shadow:0 14px 42px rgba(48,42,35,.15);animation:toastIn .24s ease both}.toast.error{border-color:#f5d0d5}.toast-icon{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:9px;color:#087955;background:#f1f4fc;font-weight:900}.toast.error .toast-icon{color:#b42318;background:#f7f7f7}.toast.leaving{animation:toastOut .22s ease both}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}

/* Initial content hydration: frame remains stable, only data areas breathe. */
body:not(.is-ready) .admin-page,body:not(.is-ready) .content-view{opacity:1}body.is-ready .table-card,body.is-ready .stat-card,body.is-ready .mapping-card{animation:surfaceIn .32s cubic-bezier(.2,.75,.25,1) both}@keyframes surfaceIn{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}body[data-admin-page="announcements"] .admin-page{animation:none!important}body[data-admin-page="announcements"] .announcement-editor,body[data-admin-page="announcements"] .announcement-list{contain:layout paint}

@media(max-width:1120px){.auth-layout{grid-template-columns:1fr}.brand-panel{min-height:auto;gap:50px}.auth-panel{padding:8px}.admin-login-wrap{grid-template-columns:1fr}.admin-login-brand{display:none}.overview-grid,.storage-setup-grid{grid-template-columns:1fr}.mapping-grid{grid-template-columns:1fr}}
@media(max-width:860px){:root{--topbar:72px}.sidebar{transform:translateX(-105%);box-shadow:var(--shadow-lg)}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.menu-button{display:inline-flex}.topbar{padding-inline:18px}.content-view,.admin-content{padding:25px 17px 70px}.stats-grid{grid-template-columns:1fr}.stat-card{min-height:120px}.topbar-actions .secondary{display:none}.announcement-admin-grid,.selection-grid{grid-template-columns:1fr}.release-footer{display:none}}
@media(max-width:620px){.auth-layout,.admin-auth{padding:12px}.brand-panel{padding:25px;border-radius:22px}.hero-copy h1{font-size:38px}.hero-copy p{font-size:14px}.feature-list{display:none}.auth-card{padding:23px;border-radius:21px;box-shadow:var(--shadow-sm)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.topbar-title h2{font-size:17px}.topbar-actions{display:none}.customer-intro,.page-intro,.mapping-head,.section-heading{align-items:flex-start;flex-direction:column}.customer-intro>.button,.page-intro>.button{width:100%}.mapping-switcher{align-items:stretch;flex-direction:column}.mapping-switcher label{min-width:0}.mapping-save-bar{align-items:stretch;flex-direction:column;bottom:10px}.mapping-save-bar .button{width:100%}.table-head{align-items:flex-start;flex-direction:column}.table-head .button{width:100%}.modal-card{padding:19px}.modal-actions{flex-wrap:wrap}.modal-actions .button{flex:1 1 auto}.verification-row,.mail-test-box{grid-template-columns:1fr}.verification-row .button,.mail-test-box .button{width:100%}.source-item{align-items:stretch;flex-direction:column}.source-actions{justify-content:flex-start}.relation-grid,.auto-summary{grid-template-columns:1fr}.storage-facts{grid-template-columns:1fr}.toast-region{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* pure-white visual system compatibility markers */
html,body{background:#ffffff!important}
.stat-card.stat-total{background:linear-gradient(145deg,#f1f4fc,#f7f7f7)}
.stat-card.stat-healthy{background:linear-gradient(145deg,#e7e8ed,#f7f7f7)}
.stat-card.stat-warning{background:linear-gradient(145deg,#fff1d2,#f7f7f7)}

/* v1.0.55 · 账号中心、映射下拉与后台页面对齐 */
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.account-menu-wrap{position:relative;z-index:40}
.account-trigger{display:flex;align-items:center;min-width:188px;height:48px;padding:5px 10px 5px 6px;gap:9px;border:1px solid #e7e8ed;border-radius:15px;color:#1e1f20;background:#ffffff;box-shadow:0 4px 14px rgba(48,42,35,.06);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.account-trigger:hover,.account-menu-wrap.open .account-trigger{border-color:#d8c9b5;box-shadow:0 9px 24px rgba(150,98,63,.12);transform:translateY(-1px)}
.account-trigger-avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:#f1f4fc center/cover no-repeat;color:#7f85a2;object-fit:cover;font-size:13px;font-weight:850}
.account-trigger-copy{display:grid;min-width:0;text-align:left;line-height:1.2}
.account-trigger-copy strong{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.account-trigger-copy small{margin-top:3px;color:#7f85a2;font-size:10px}
.account-chevron{margin-left:auto;color:#7f85a2;font-size:15px;transition:transform .2s ease}.account-menu-wrap.open .account-chevron{transform:rotate(180deg)}
.account-popover{position:absolute;top:calc(100% + 10px);right:0;width:286px;padding:10px;border:1px solid #e7e8ed;border-radius:20px;background:#ffffff;box-shadow:0 22px 55px rgba(48,42,35,.18);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;transition:opacity .18s ease,visibility .18s ease,transform .18s ease}
.account-menu-wrap.open .account-popover{opacity:1;visibility:visible;transform:none}
.account-popover-head{display:flex;align-items:center;gap:11px;margin-bottom:7px;padding:9px 10px 13px;border-bottom:1px solid #f1f4fc}
.account-popover-head .qq-avatar,.account-popover-head .avatar{flex:0 0 42px;width:42px;height:42px;border-radius:13px;background-position:center;background-size:cover}
.account-popover-head>div{display:grid;min-width:0}.account-popover-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.account-popover-head small{margin-top:4px;color:#7f85a2;font-size:11px}
.account-menu-item{display:flex;width:100%;padding:11px 10px;align-items:center;gap:10px;border:0;border-radius:13px;color:#4a4e60;background:transparent;text-align:left;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}
.account-menu-item:hover{color:#717792;background:#f7f7f7;transform:translateX(2px)}.account-menu-item.danger:hover{color:#c4323e;background:#f7f7f7}
.account-menu-icon{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:10px;color:#7f85a2;background:#f1f4fc;font-weight:800}.account-menu-item.danger .account-menu-icon{color:#c4323e;background:#f7f7f7}
.account-menu-item>span:last-child{display:grid}.account-menu-item strong{font-size:12px}.account-menu-item small{margin-top:3px;color:#7f85a2;font-size:10px}
.profile-dialog{width:min(650px,calc(100% - 28px))}.profile-card{gap:16px}.profile-summary{display:flex;align-items:center;padding:14px;gap:13px;border:1px solid #e7e8ed;border-radius:17px;background:linear-gradient(135deg,#f7f7f7,#ffffff)}
.profile-avatar{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:17px;background:#f1f4fc center/cover no-repeat;color:#7f85a2;object-fit:cover;font-weight:850}.profile-summary>div{display:grid}.profile-summary strong{font-size:15px}.profile-summary small{margin-top:4px;color:#7f85a2}
.profile-password-block{display:grid;padding:15px;gap:13px;border:1px solid #e7e8ed;border-radius:17px;background:#ffffff}.profile-password-block>div:first-child{display:grid}.profile-password-block>div:first-child small{margin-top:4px;color:#7f85a2}
.mapping-select-field{display:grid!important;gap:7px}.mapping-select-label{color:#717792;font-size:11px;font-weight:800}.select-shell{position:relative;display:block;border-radius:15px;transition:box-shadow .2s ease,transform .2s ease}
.select-shell select{width:100%;height:49px;padding:0 48px 0 15px;appearance:none;-webkit-appearance:none;border:1px solid #e7e8ed;border-radius:15px;color:#1e1f20;background:linear-gradient(180deg,#ffffff,#f7f7f7);font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(48,42,35,.04);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.select-shell:hover select{border-color:#d8c9b5;background:#ffffff;box-shadow:0 8px 20px rgba(150,98,63,.09)}.select-shell select:focus{outline:0;border-color:#7f85a2;box-shadow:0 0 0 4px rgba(150,98,63,.12)}
.select-chevron{position:absolute;right:15px;top:50%;width:9px;height:9px;border-right:2px solid #7f85a2;border-bottom:2px solid #7f85a2;pointer-events:none;transform:translateY(-70%) rotate(45deg);transition:transform .2s ease,border-color .2s ease}.select-shell:focus-within .select-chevron{border-color:#7f85a2;transform:translateY(-30%) rotate(225deg)}
.select-shell.is-dirty select{border-color:#9398ae;color:#717792;background:#f7f7f7;box-shadow:0 0 0 3px rgba(150,98,63,.09)}.mapping-select-help{color:#7f85a2;font-size:10px;line-height:1.5}
.admin-balanced-page{width:min(1320px,100%);margin:0 auto}.balanced-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(460px,1fr);align-items:stretch;gap:22px}.balanced-admin-grid>.table-card{height:100%;min-height:590px}
.admin-info-panel,.admin-form-panel{display:flex;min-width:0;flex-direction:column}.admin-info-panel>.table-head,.admin-form-panel>.table-head{flex:0 0 auto}.admin-form-panel>form{flex:1}.storage-current-body{flex:0 0 auto}.storage-current-card .storage-facts{margin-bottom:18px}
.info-panel-footer{display:flex;margin:18px;align-items:flex-start;padding:16px;gap:12px;border:1px solid #e7e8ed;border-radius:16px;background:#f7f7f7}.info-panel-footer p{margin:5px 0 0;color:#7f85a2;line-height:1.65}.info-badge-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:12px;color:#087955;background:#dcf8ed;font-weight:900}
.soft-tip{display:grid;margin:auto 18px 18px;padding:15px 16px;gap:5px;border:1px solid #e7e8ed;border-radius:15px;background:#ffffff}.soft-tip strong{font-size:12px}.soft-tip span{color:#7f85a2;font-size:11px;line-height:1.65}
.mail-settings-grid{grid-template-columns:minmax(0,.92fr) minmax(500px,1.08fr)}.mail-guide-card .mail-guide{padding-bottom:6px}.mail-guide-card .setup-step{padding:17px 18px}.mail-guide-card .setup-step+ .setup-step{border-top:1px solid #f1f4fc}.mail-presets{display:grid;margin:10px 18px 18px;padding:16px;gap:10px;border:1px solid #e7e8ed;border-radius:16px;background:#f7f7f7}.mail-presets>div{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-radius:11px;background:#ffffff}.mail-presets span{color:#717792;font-size:11px;font-weight:750}.mail-presets code{color:#7f85a2;font-size:10px}
.announcement-workspace{grid-template-columns:minmax(540px,1.08fr) minmax(430px,.92fr)}.announcement-list-panel .announcement-list{flex:1;min-height:430px;padding:18px}.announcement-list-panel .compact-empty{min-height:390px!important;display:grid;place-content:center}.announcement-list-help{margin-top:auto}.announcement-editor textarea{min-height:215px}.announcement-editor .html-preview-wrap{min-height:135px}.compact-action{white-space:nowrap}
@media(max-width:1120px){.balanced-admin-grid,.mail-settings-grid,.announcement-workspace{grid-template-columns:1fr}.balanced-admin-grid>.table-card{min-height:auto}.admin-info-panel{min-height:420px!important}}
@media(max-width:860px){.account-trigger{min-width:0}.account-trigger-copy{display:none}.account-trigger{padding-right:6px}.account-chevron{display:none}.customer-topbar-actions,.admin-topbar-actions{display:flex}.topbar-actions .account-menu-wrap{display:block}.account-popover{position:fixed;top:76px;right:14px;width:min(286px,calc(100% - 28px))}}
@media(max-width:620px){.topbar-actions{display:flex!important}.topbar-actions>.desktop-action{display:none!important}.profile-dialog{width:calc(100% - 18px)}.profile-card{padding:18px}.profile-password-block{padding:13px}.section-heading .compact-action{width:auto}.balanced-admin-grid{gap:15px}.admin-info-panel{min-height:0!important}}

/* v1.0.55 · H5 精简卡片、详情弹窗与已对接内容管理 */
.danger-button{color:#b42318!important;background:#f7f7f7!important;border-color:#ffd0d5!important}.danger-button:hover:not(:disabled){color:#a3111e!important;background:#f1f4fc!important;border-color:#ffadb7!important;box-shadow:0 8px 20px rgba(220,53,69,.1)}
.mobile-record-list{display:none}.empty-wrap{overflow:visible}.detail-dialog{width:min(680px,calc(100% - 28px));padding:0;border:0;border-radius:24px;background:transparent}.detail-card{width:100%;padding:24px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.detail-field{display:grid;min-width:0;padding:15px 16px;gap:5px;border:1px solid #e7e8ed;border-radius:16px;background:#ffffff}.detail-field.wide{grid-column:1/-1}.detail-field small{color:#7f85a2;font-size:11px;font-weight:750}.detail-field strong{min-width:0;color:#1e1f20;overflow-wrap:anywhere;font-size:13px}
.synced-switcher{align-items:end}.synced-toolbar{display:flex;gap:10px}.sync-selection-bar{display:flex;margin:16px 0;align-items:center;justify-content:space-between;padding:13px 16px;border:1px solid #e7e8ed;border-radius:16px;background:#ffffff;color:#717792}.check-row{display:flex;grid-auto-flow:column;align-items:center;gap:9px}.synced-content{display:grid;gap:16px}.synced-category-card{overflow:hidden;border:1px solid #e7e8ed;border-radius:20px;background:#ffffff;box-shadow:0 8px 26px rgba(48,42,35,.055);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.synced-category-card:hover{transform:translateY(-1px);border-color:#e7e8ed;box-shadow:0 14px 34px rgba(48,42,35,.085)}.synced-category-head,.synced-node-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.synced-category-head{padding:18px 20px;background:linear-gradient(135deg,#f7f7f7,#ffffff)}.synced-check{display:flex;grid-auto-flow:column;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:0;cursor:pointer}.synced-check>span{display:grid;min-width:0}.synced-check small{color:#7f85a2;font-size:10px;font-weight:700}.synced-check strong{margin-top:2px;color:#1e1f20;font-size:14px;overflow-wrap:anywhere}.synced-node-list{display:grid;padding:5px 20px 12px}.synced-node-row{padding:13px 0;border-top:1px solid #f1f4fc}.synced-node-row:first-child{border-top:0}.synced-node-row .synced-check{padding-left:8px}.synced-node-empty{padding:17px 8px;color:#7f85a2;font-size:12px;border-top:1px solid #f1f4fc}.synced-empty{min-height:260px;border:1px dashed #e7e8ed;border-radius:20px;background:#ffffff}
.mobile-record-card{min-width:0;overflow:hidden;border:1px solid #e7e8ed;border-radius:20px;background:#ffffff;box-shadow:0 10px 28px rgba(48,42,35,.07)}.mobile-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 17px 13px}.mobile-record-head h3{margin:3px 0 0;color:#1e1f20;font-size:17px;line-height:1.35}.record-kicker{color:#7f85a2;font-size:10px;font-weight:800;letter-spacing:.06em}.mobile-record-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 17px 16px}.mobile-record-main>span,.mobile-record-main:not(:has(>span)){min-width:0}.mobile-record-main span{display:grid;padding:12px;gap:4px;border-radius:14px;background:#f7f7f7}.mobile-record-main small,.mobile-record-meta small{color:#7f85a2;font-size:10px;font-weight:700}.mobile-record-main strong,.mobile-record-main code{min-width:0;color:#1e1f20;overflow-wrap:anywhere;font-size:12px}.mobile-record-main>strong{font-size:15px}.mobile-record-main>code{margin-top:5px}.mobile-record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 17px 15px;gap:9px}.mobile-record-meta>span{display:grid;min-width:0;padding:11px 12px;gap:4px;border:1px solid #f1f4fc;border-radius:13px}.mobile-record-meta .wide{grid-column:1/-1}.mobile-record-meta strong{overflow-wrap:anywhere;color:#4a4e60;font-size:11px}.mobile-record-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;padding:13px 17px;gap:7px;border-top:1px solid #f1f4fc;background:#ffffff}.mobile-record-actions .action-button{flex:1;margin:0;min-width:74px}.mobile-record-identity{display:flex;align-items:center;min-width:0;gap:11px}.mobile-record-identity>div{display:grid;min-width:0}.mobile-record-identity strong,.mobile-record-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-record-identity small{color:#7f85a2;font-size:10px}.table-avatar.large{width:44px;height:44px;flex:0 0 44px}.customer-database-card .mobile-record-actions{padding-top:12px}.customer-database-card .badge{flex:0 0 auto}
@media(max-width:700px){
  .desktop-connection-table,.admin-desktop-table{display:none!important}.mobile-record-list{display:grid;gap:14px;padding:15px}.table-card>.mobile-record-list:empty{display:none}.table-card{overflow:hidden}.table-head{padding:17px}.table-head h3{font-size:17px}.table-head p{font-size:11px}
  .connection-stats{grid-template-columns:1fr!important}.connection-stats .stat-card{min-height:136px}.customer-intro{padding-bottom:2px}.customer-intro h1{font-size:27px}.customer-database-card .mobile-record-main{grid-template-columns:1fr 1fr}.customer-database-card .mobile-record-actions .button{min-height:40px}
  .detail-card{padding:18px}.detail-grid{grid-template-columns:1fr;gap:9px}.detail-field.wide{grid-column:auto}.detail-dialog .modal-actions{display:grid;grid-template-columns:1fr 1fr}.detail-dialog .modal-actions .danger-button{grid-column:1/-1}
  .synced-switcher{display:grid;grid-template-columns:1fr}.synced-toolbar{display:grid;grid-template-columns:1fr 1fr}.sync-selection-bar{margin:13px 0;padding:12px 13px}.synced-category-head{align-items:flex-start;padding:15px}.synced-node-list{padding:4px 15px 10px}.synced-node-row{align-items:flex-start}.synced-category-head>.action-button,.synced-node-row>.action-button{flex:0 0 auto;margin:0}.synced-check{align-items:flex-start}.synced-check input{margin-top:4px}
  .admin-mobile-list{padding:14px}.admin-list-section{background:transparent;border:0;box-shadow:none}.admin-list-section .mobile-record-card{background:#ffffff}.admin-user-card .mobile-record-head{align-items:center}.admin-connection-card .mobile-record-main{grid-template-columns:1fr;padding-top:0}.admin-connection-card .mobile-record-main>strong,.admin-connection-card .mobile-record-main>code{padding:0 2px}.standalone-heading{gap:14px}.standalone-heading .button{width:100%}
}
@media(max-width:430px){.mobile-record-main,.mobile-record-meta{grid-template-columns:1fr}.mobile-record-meta .wide{grid-column:auto}.customer-database-card .mobile-record-main{grid-template-columns:1fr}.synced-toolbar{grid-template-columns:1fr}.synced-category-head,.synced-node-row{gap:8px}.synced-category-head>.action-button,.synced-node-row>.action-button{padding-inline:9px}.mobile-record-actions{display:grid;grid-template-columns:repeat(2,1fr)}.mobile-record-actions .action-button:last-child:nth-child(3){grid-column:1/-1}.admin-user-card .mobile-record-actions{grid-template-columns:1fr 1fr}}


/* v1.0.55 · page-level Apple style: quiet, white and touch friendly */
:root{
  --bg:#ffffff;--surface:#ffffff;--soft:#f7f7f7;--soft-blue:#f7f7f7;
  --line:rgba(48,42,35,.13);--line-strong:rgba(48,42,35,.2);
  --ink:#1e1f20;--ink-2:#1e1f20;--muted:#717792;--faint:#7f85a2;
  --primary:#7f85a2;--primary-deep:#717792;--primary-soft:#f1f4fc;
  --success:#4f8f79;--success-soft:#f1f4fc;--warning:#a98247;--warning-soft:#f1f4fc;
  --danger:#b65f68;--danger-soft:#f1f4fc;
  --shadow-sm:0 1px 2px rgba(48,42,35,.025),0 6px 20px rgba(48,42,35,.045);
  --shadow:0 14px 42px rgba(48,42,35,.065);--shadow-lg:0 28px 80px rgba(48,42,35,.12);
  --radius-sm:14px;--radius:22px;--radius-lg:30px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Helvetica Neue",Arial,sans-serif;
}
html,body,.shell,.app-layout,.workspace,.content-view,.admin-content,.auth-layout,.admin-auth{background:#ffffff}
body{color:var(--ink);font-weight:400;letter-spacing:-.012em}
h1,h2,h3,h4,.brand,.brand-copy strong{font-weight:650;letter-spacing:-.025em}
body::before,.background-grid,.brand-panel::after,.admin-login-brand::after,.stat-watermark{display:none!important}

/* Flat controls and calm surfaces */
.button,.action-button,.text-button,.icon-button,.close-button,.menu-button{font-weight:600;border-radius:14px;box-shadow:none}
.button{min-height:44px;padding:10px 18px}
.button.primary{color:#ffffff;background:var(--primary);box-shadow:0 7px 18px rgba(150,98,63,.18)}
.button.primary:hover:not(:disabled){background:var(--primary-deep);box-shadow:0 9px 22px rgba(150,98,63,.22)}
.button.secondary,.button.ghost,.action-button,.icon-button,.close-button,.menu-button{color:var(--ink-2);background:#ffffff;border-color:var(--line)}
.button.secondary:hover:not(:disabled),.button.ghost:hover,.action-button:hover,.icon-button:hover,.close-button:hover,.menu-button:hover{color:var(--primary-deep);background:var(--primary-soft);border-color:rgba(150,98,63,.28)}
input,select,textarea{min-height:46px;border-radius:14px;border-color:var(--line-strong);background:#ffffff;box-shadow:none;font-weight:400}
input:hover,select:hover,textarea:hover{border-color:rgba(150,98,63,.42)}
input:focus,select:focus,textarea:focus{border-color:rgba(150,98,63,.7);box-shadow:0 0 0 4px rgba(150,98,63,.11)}
input[type=checkbox]{accent-color:var(--primary)}

.sidebar{background:#ffffff;border-right:1px solid var(--line);box-shadow:none}
.topbar{background:rgba(255,253,248,.94);border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px)}
.sidebar-account,.console-chip{background:#ffffff;border-color:var(--line);box-shadow:none}
.brand-mark,.sidebar-account .avatar,.qq-avatar,.table-avatar{background:var(--primary);box-shadow:none}
.nav-item{color:var(--muted);font-weight:520;border-radius:14px}
.nav-item:hover{color:var(--ink);background:var(--soft);transform:none}
.nav-item.active{color:var(--primary-deep);background:var(--primary-soft);box-shadow:inset 0 0 0 1px rgba(150,98,63,.08)}
.nav-icon,.account-menu-icon{color:var(--faint)}
.eyebrow,.section-kicker{color:var(--primary);font-weight:650;letter-spacing:.08em}
.eyebrow::before,.section-kicker::before{width:5px;height:5px;background:var(--primary);box-shadow:none}

.card,.table-card,.stat-card,.mapping-card,.mobile-record-card,.synced-category-card,.selection-card,.source-item,.storage-card,.quick-action,.modal-card,.auth-card,.brand-panel,.admin-login-brand,.account-popover{
  background:#ffffff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);
}
.table-card:hover,.stat-card:hover,.mapping-card:hover,.mobile-record-card:hover,.synced-category-card:hover{border-color:rgba(150,98,63,.22);box-shadow:var(--shadow)}
.brand-panel,.admin-login-brand{box-shadow:var(--shadow);border-radius:var(--radius-lg)}
.feature-list li,.login-trust span{background:#ffffff;border-color:var(--line);box-shadow:none}
.feature-list li:hover{transform:none;border-color:rgba(150,98,63,.28);box-shadow:var(--shadow-sm)}
.auth-card{border-radius:var(--radius-lg)}
.tabs{background:var(--soft);border-color:transparent;border-radius:16px}
.tab{border-radius:12px;font-weight:560}.tab.active{color:var(--ink);box-shadow:0 2px 8px rgba(48,42,35,.07)}

.stat-card{min-height:142px;background:#ffffff}
.stat-total{border-top:3px solid #9398ae}.stat-healthy{border-top:3px solid #83aa9c}.stat-warning{border-top:3px solid #c5a77a}
.stat-label,.table-head p,.page-intro p,.section-heading p,.mapping-head p{color:var(--muted)}
.badge,.status-pill,.announcement-section{border-radius:999px;font-weight:600}
.account-trigger{border-color:var(--line);background:#ffffff;border-radius:16px;box-shadow:none}
.account-popover{border-radius:20px;box-shadow:var(--shadow-lg)}
.account-menu-item{border-radius:14px}.account-menu-item:hover{background:var(--soft)}
.toast{color:var(--ink);background:rgba(255,253,248,.97);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* Native dialogs keep focus and keyboard behaviour predictable. */
dialog{padding:0;border:0;background:transparent;color:var(--ink)}
dialog:not([open]){display:none!important}
dialog::backdrop{background:rgba(247,243,235,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.modal-card{border-radius:28px;box-shadow:0 28px 90px rgba(48,42,35,.16)}

/* Announcement queue: never occupies page space; every notice is a modal. */
.announcement-dialog{width:min(640px,calc(100% - 32px));max-height:min(82vh,760px);margin:auto}
.announcement-modal-card{overflow:hidden;background:#ffffff;border:1px solid var(--line);border-radius:30px;box-shadow:0 30px 100px rgba(48,42,35,.18)}
.announcement-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 28px 20px;border-bottom:1px solid var(--line)}
.announcement-modal-head h2{margin:0;font-size:25px;line-height:1.2}
.announcement-modal-head .eyebrow{margin-bottom:8px}
.announcement-counter{flex:0 0 auto;color:var(--faint);font-size:12px}
.announcement-modal-body{max-height:50vh;padding:24px 28px;overflow:auto;overscroll-behavior:contain;color:var(--ink-2);line-height:1.75}
.announcement-modal-body>:first-child{margin-top:0}.announcement-modal-body>:last-child{margin-bottom:0}
.announcement-modal-body img{height:auto;border-radius:16px}
.announcement-modal-body a{color:var(--primary-deep);text-decoration:underline;text-underline-offset:3px}
.announcement-progress{height:3px;margin:0 28px;overflow:hidden;border-radius:999px;background:var(--soft)}
.announcement-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--primary);transition:width .24s linear}
.announcement-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 28px 26px}
.announcement-modal-actions small{color:var(--muted)}
.announcement-modal-actions .button{min-width:132px}
.announcement-modal-actions .button:disabled{color:var(--muted);background:var(--soft);box-shadow:none}
.announcement-html table{width:100%;border-collapse:collapse}.announcement-html th,.announcement-html td{padding:9px;border:1px solid var(--line);text-align:left}
.announcement-list-item{border-color:var(--line);border-radius:18px;background:#ffffff;box-shadow:none}
.announcement-list-item:hover{border-color:rgba(150,98,63,.25)}

/* Mobile layouts remain full-width and comfortable to tap. */
@media(max-width:860px){
  .sidebar{box-shadow:var(--shadow-lg)}
  .content-view,.admin-content{padding:24px 16px 64px}
  .topbar{padding-inline:16px}
  .stats-grid{gap:14px}
}
@media(max-width:620px){
  .auth-layout,.admin-auth{padding:10px}
  .brand-panel{border-radius:24px}.auth-card{padding:22px;border-radius:24px}
  .table-card,.stat-card,.mapping-card,.mobile-record-card,.synced-category-card{border-radius:20px}
  .announcement-dialog{width:calc(100% - 18px);max-height:calc(100vh - 18px);margin:auto auto 9px}
  .announcement-modal-card{border-radius:26px}
  .announcement-modal-head{display:block;padding:22px 20px 17px}.announcement-counter{display:block;margin-top:10px}
  .announcement-modal-body{max-height:55vh;padding:20px}
  .announcement-progress{margin:0 20px}
  .announcement-modal-actions{align-items:stretch;padding:17px 20px 20px;flex-direction:column}
  .announcement-modal-actions .button{width:100%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* v1.0.55：建议框以邮箱输入框为锚点，不使用浏览器原生 datalist。 */
.email-combobox{position:relative;display:block;min-width:0;width:100%}
.email-combobox>input{width:100%;margin:0}
.email-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:80;display:block;max-height:224px;overflow-y:auto;overscroll-behavior:contain;background:#ffffff;border:1px solid #e7e8ed;border-radius:12px;box-shadow:0 8px 30px rgba(48,42,35,.12);padding:5px}
.email-suggestions[hidden]{display:none!important}
.email-suggestions [role=option]{display:block;padding:10px 12px;border-radius:8px;font-size:15px;font-weight:400;color:#1e1f20;cursor:pointer;overflow-wrap:anywhere;transition:background .2s ease}
.email-suggestions [role=option]:hover,.email-suggestions [aria-selected=true]{background:#f1f4fc;color:#7f85a2}
.guided-empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#ffffff;border:1px solid #e7e8ed;border-radius:20px;margin-top:20px;padding:36px 20px}
.guided-empty h3{margin:0;font-weight:500;color:#4a4e60;font-size:18px}
.guided-empty .button{width:auto;min-width:112px}
/* iOS 不自动放大表单，同时保留用户主动缩放。 */
@media(max-width:900px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;line-height:1.4}input:focus,select:focus,textarea:focus{scroll-margin-block:100px}.email-suggestions{max-height:200px}.guided-empty{min-height:240px}}
@media(prefers-reduced-motion:reduce){.email-suggestions *{transition:none!important}}


/* ========================================================================
   小韭菜对接 v1.0.55 · Apple / macOS Sonoma 管理界面
   Tailwind 负责结构工具类；这里保留业务组件与离线回退样式。
   ======================================================================== */
:root{
  color-scheme:light;
  --bg:#f1f4fc;
  --surface:rgba(255,253,248,.86);
  --surface-solid:#ffffff;
  --surface-hover:rgba(255,253,248,.96);
  --soft:#f1f4fc;
  --soft-blue:#f7f7f7;
  --line:rgba(48,42,35,.08);
  --line-strong:rgba(48,42,35,.14);
  --ink:#1e1f20;
  --ink-2:#4a4e60;
  --muted:#7f85a2;
  --faint:#7f85a2;
  --primary:#7f85a2;
  --primary-deep:#717792;
  --primary-soft:rgba(150,98,63,.10);
  --success:#248A3D;
  --success-soft:rgba(52,199,89,.11);
  --warning:#B26A00;
  --warning-soft:rgba(255,159,10,.12);
  --danger:#D70015;
  --danger-soft:rgba(255,59,48,.10);
  --shadow-xs:0 1px 2px rgba(48,42,35,.025);
  --shadow-sm:0 1px 2px rgba(48,42,35,.03),0 6px 18px rgba(48,42,35,.035);
  --shadow:0 1px 2px rgba(48,42,35,.025),0 12px 36px rgba(48,42,35,.055);
  --shadow-lg:0 2px 8px rgba(48,42,35,.05),0 28px 80px rgba(48,42,35,.12);
  --radius-sm:10px;
  --radius:18px;
  --radius-lg:24px;
  --sidebar:280px;
  --topbar:72px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Helvetica Neue",Arial,sans-serif;
}

html,body,.shell,.app-layout,.workspace{background:var(--bg)}
body{color:var(--ink);font-weight:400;letter-spacing:-.008em}
::selection{color:#ffffff;background:rgba(150,98,63,.82)}
:focus-visible{outline:3px solid rgba(150,98,63,.22);outline-offset:2px}

/* 顶部与侧栏采用 Sonoma 毛玻璃材质。 */
.sidebar{
  padding:18px 14px 16px;
  background:rgba(255,253,248,.72)!important;
  border-right:1px solid var(--line)!important;
  box-shadow:inset -1px 0 rgba(255,253,248,.62);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
}
.topbar{
  min-height:var(--topbar);
  padding:12px clamp(18px,2.6vw,40px);
  background:rgba(255,253,248,.72)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:0 1px 0 rgba(255,253,248,.72),0 8px 24px rgba(48,42,35,.025)!important;
  backdrop-filter:saturate(180%) blur(20px)!important;
  -webkit-backdrop-filter:saturate(180%) blur(20px)!important;
}
.sidebar-brand{min-height:48px;padding:0 8px 16px;gap:12px}
.brand-mark{
  border-radius:14px;
  background:linear-gradient(145deg,#7f85a2,#717792);
  box-shadow:0 8px 20px rgba(150,98,63,.20),inset 0 1px rgba(255,253,248,.36);
}
.brand-copy strong{color:var(--ink);font-size:14px;font-weight:650;letter-spacing:-.015em}
.brand-copy span{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.08em}
.sidebar-account,.console-chip{
  border:1px solid var(--line);
  background:rgba(255,253,248,.66);
  box-shadow:var(--shadow-xs);
}
.sidebar-account{margin-bottom:12px;padding:10px;border-radius:16px}
.console-chip{margin-bottom:14px;padding:10px;border-radius:14px}
.sidebar-account .avatar,.qq-avatar,.table-avatar,.account-trigger-avatar{
  border-radius:12px;
  background:linear-gradient(145deg,#7f85a2,#717792);
  box-shadow:inset 0 1px rgba(255,253,248,.25);
}
.console-dot{background:#30D158;box-shadow:0 0 0 5px rgba(48,209,88,.12)}

/* 侧边导航：图标统一为 19px 描边 SVG。 */
.sidebar-nav{gap:3px;padding:0 2px 16px;scrollbar-width:thin}
.nav-label{padding:12px 10px 5px;color:var(--faint);font-size:10px;font-weight:600;letter-spacing:.08em}
.nav-label-spaced{margin-top:4px}
.nav-item{
  min-height:42px;
  padding:9px 11px;
  gap:11px;
  border:1px solid transparent;
  border-radius:12px;
  color:#717792;
  font-size:13px;
  font-weight:500;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.nav-item:hover{color:var(--ink);background:rgba(255,253,248,.76);border-color:var(--line);transform:translateY(-1px);box-shadow:var(--shadow-xs)}
.nav-item.active{color:var(--primary);background:var(--primary-soft);border-color:rgba(150,98,63,.08);box-shadow:none}
.nav-item.active::after{right:9px;width:5px;height:5px;background:var(--primary);box-shadow:0 0 0 4px rgba(150,98,63,.08)}
.nav-icon{width:20px;height:20px;color:currentColor}
.nav-icon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar-foot{border-top-color:var(--line)}

/* 内容区域遵循 8px 栅格与大留白。 */
.content-view,.admin-content{width:min(1540px,100%);padding:40px clamp(24px,3.4vw,56px) 88px;background:transparent}
.customer-intro,.page-intro,.mapping-head,.section-heading{margin-bottom:28px}
.customer-intro h1,.page-intro h1,.mapping-head h1,.section-heading h1,.section-heading h2{
  color:var(--ink);
  font-size:clamp(28px,3vw,42px);
  font-weight:680;
  line-height:1.12;
  letter-spacing:-.045em;
}
.customer-intro p,.page-intro p,.mapping-head p,.section-heading p,.table-head p{color:var(--muted);font-size:14px;line-height:1.65}
.eyebrow{color:var(--primary);font-size:11px;font-weight:650;letter-spacing:.08em}
.breadcrumb{color:var(--muted);font-size:11px}
.topbar-title h2{color:var(--ink);font-size:18px;font-weight:650}

/* 卡片：白色、细边框、大圆角和柔和多层阴影。 */
.table-card,.stat-card,.mapping-card,.database-card,.mobile-record-card,.synced-category-card,
.auth-card,.brand-panel,.admin-login-brand,.boot-card,.admin-info-panel,.admin-form-panel{
  border:1px solid var(--line)!important;
  border-radius:18px!important;
  background:rgba(255,253,248,.90)!important;
  box-shadow:var(--shadow-sm)!important;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;
}
.table-card:hover,.stat-card:hover,.mapping-card:hover,.database-card:hover,.mobile-record-card:hover,.synced-category-card:hover{
  transform:translateY(-2px);
  border-color:rgba(150,98,63,.15)!important;
  background:var(--surface-hover)!important;
  box-shadow:var(--shadow)!important;
}
.table-head{padding:20px 22px;border-bottom-color:var(--line)}
.table-head h3{color:var(--ink);font-size:18px;font-weight:650;letter-spacing:-.025em}
.overview-grid,.storage-grid,.announcement-layout,.mail-layout{gap:20px}
.stats-grid{gap:16px}
.stat-card{min-height:132px;padding:20px;border-top:1px solid var(--line)!important}
.stat-card::before{content:"";display:block;width:28px;height:4px;margin-bottom:18px;border-radius:999px;background:var(--primary)}
.stat-card.stat-healthy::before{background:#30B65A}.stat-card.stat-warning::before{background:#F0A226}
.stat-card.stat-total,.stat-card.stat-healthy,.stat-card.stat-warning{background:rgba(255,253,248,.92)!important}
.stat-value{color:var(--ink);font-weight:700;letter-spacing:-.045em}
.quick-action{border-radius:16px;background:#ffffff;border-color:var(--line);box-shadow:var(--shadow-xs)}
.quick-action:hover{transform:translateY(-2px);border-color:rgba(150,98,63,.16);background:#ffffff;box-shadow:var(--shadow-sm)}
.soft-tip,.source-note,.connection-note{border-radius:14px;background:var(--soft-blue);border:1px solid rgba(150,98,63,.09)}

/* 表格与列表保持信息密度，但不牺牲触控空间。 */
table{border-collapse:separate;border-spacing:0}
th{padding:13px 16px;color:var(--muted);background:rgba(247,243,235,.72);font-size:11px;font-weight:600;letter-spacing:.025em}
td{padding:15px 16px;border-top-color:var(--line);color:var(--ink-2)}
tbody tr{transition:background .2s ease}tbody tr:hover{background:rgba(150,98,63,.025)}
.badge,.status-pill,.announcement-section{border:1px solid transparent;font-weight:550}

/* 表单控件按 macOS 控件比例处理。 */
label{gap:8px;color:var(--ink-2);font-size:12px;font-weight:600}
input,select,textarea{
  min-height:44px;
  padding:10px 13px;
  color:var(--ink);
  background:rgba(255,253,248,.92);
  border:1px solid var(--line-strong);
  border-radius:10px;
  box-shadow:inset 0 1px 1px rgba(48,42,35,.018),0 1px 1px rgba(255,253,248,.72);
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
textarea{min-height:136px}
input:hover,select:hover,textarea:hover{border-color:rgba(48,42,35,.22);background:#ffffff}
input:focus,select:focus,textarea:focus{border-color:rgba(150,98,63,.62);background:#ffffff;box-shadow:0 0 0 4px rgba(150,98,63,.10)}
input[type=checkbox]{accent-color:var(--primary)}

/* 按钮遵循系统蓝、12px 圆角与轻量反馈。 */
.button,.action-button,.text-button,.icon-button,.close-button,.menu-button,.account-trigger{
  font-weight:600;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease,opacity .2s ease;
}
.button{min-height:42px;padding:10px 16px;border-radius:12px}
.button:hover:not(:disabled),.action-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.close-button:hover:not(:disabled){transform:translateY(-1px)}
.button.primary{color:#ffffff;background:#7f85a2;box-shadow:0 5px 14px rgba(150,98,63,.20)}
.button.primary:hover:not(:disabled){background:#7f85a2;box-shadow:0 8px 20px rgba(150,98,63,.25)}
.button.secondary,.button.ghost{color:var(--ink);background:rgba(255,253,248,.86);border-color:var(--line-strong);box-shadow:var(--shadow-xs)}
.button.secondary:hover:not(:disabled),.button.ghost:hover:not(:disabled){color:var(--primary);background:#ffffff;border-color:rgba(150,98,63,.22)}
.button.danger,.danger-button{color:var(--danger);background:var(--danger-soft);border-color:rgba(215,0,21,.10)}
.action-button{border-radius:10px;background:#ffffff;border-color:var(--line);font-weight:550}
.icon-button,.close-button,.menu-button{border-radius:11px;background:rgba(255,253,248,.76);border-color:var(--line);box-shadow:var(--shadow-xs)}

/* 账户菜单与弹窗使用悬浮层级。 */
.account-trigger{min-height:46px;padding:5px 9px 5px 6px;border-radius:14px;background:rgba(255,253,248,.72);border-color:var(--line);box-shadow:var(--shadow-xs)}
.account-trigger:hover{background:#ffffff;border-color:rgba(150,98,63,.16);box-shadow:var(--shadow-sm)}
.account-popover{padding:8px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,248,.88);box-shadow:var(--shadow-lg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.account-menu-item{border-radius:12px}.account-menu-item:hover{background:rgba(150,98,63,.07)}
dialog::backdrop{background:rgba(242,237,227,.68);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.modal-card,.announcement-modal-card{
  border:1px solid rgba(255,253,248,.78);
  border-radius:20px;
  background:rgba(255,253,248,.94);
  box-shadow:0 2px 8px rgba(48,42,35,.04),0 32px 90px rgba(48,42,35,.16);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
}
.modal-head,.announcement-modal-head{border-bottom-color:var(--line)}
.announcement-modal-card{border-radius:20px}
.toast{border-color:var(--line);border-radius:14px;background:rgba(255,253,248,.90);box-shadow:var(--shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.release-footer{color:var(--muted);background:rgba(255,253,248,.70);border-color:var(--line);box-shadow:var(--shadow-xs);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}

/* 登录页同样使用系统灰背景和白色玻璃卡片。 */
.auth-layout,.admin-auth{background:var(--bg)}
.brand-panel,.admin-login-brand{background:rgba(255,253,248,.74)!important}
.auth-card{background:rgba(255,253,248,.92)!important}
.tabs{border:0;background:#e7e8ed;border-radius:13px}
.tab{border-radius:10px;font-weight:550}.tab.active{color:var(--ink);background:#ffffff;box-shadow:0 1px 3px rgba(48,42,35,.10)}
.feature-list li,.login-trust span{border-color:var(--line);background:rgba(255,253,248,.72)}

/* 浏览器不支持毛玻璃时仍保持清晰白色界面。 */
@supports not ((backdrop-filter:blur(20px)) or (-webkit-backdrop-filter:blur(20px))){
  .sidebar,.topbar,.account-popover,.modal-card,.announcement-modal-card,.toast{background:#ffffff!important}
}

/* H5：侧栏抽屉化、顶栏紧凑化、表单单列化。 */
@media(max-width:860px){
  :root{--topbar:64px}
  .sidebar{background:rgba(255,253,248,.90)!important;box-shadow:var(--shadow-lg)}
  .topbar{padding:10px 14px}
  .content-view,.admin-content{padding:28px 16px 80px}
  .customer-intro,.page-intro,.mapping-head,.section-heading{align-items:flex-start;margin-bottom:22px}
  .table-card:hover,.stat-card:hover,.mapping-card:hover,.database-card:hover,.mobile-record-card:hover,.synced-category-card:hover{transform:none}
}
@media(max-width:620px){
  .customer-intro h1,.page-intro h1,.mapping-head h1,.section-heading h1,.section-heading h2{font-size:29px}
  .auth-layout,.admin-auth{padding:12px}
  .brand-panel,.auth-card,.admin-login-brand{border-radius:18px!important}
  .table-card,.stat-card,.mapping-card,.database-card,.mobile-record-card,.synced-category-card{border-radius:16px!important}
  .form-grid{grid-template-columns:1fr;gap:14px}.span-2{grid-column:auto}
  .button{min-height:44px}
  .modal-card,.announcement-modal-card{border-radius:18px}
  .announcement-dialog{margin:auto auto 8px}
  .topbar-title h2{font-size:16px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* ========================================================================
   v1.0.55 · 弹窗居中、透明公告遮罩与细节边框
   显式覆盖 Tailwind Preflight 和各浏览器 dialog 默认定位，避免弹窗跑到左上角。
   ======================================================================== */
dialog{
  position:fixed!important;
  inset:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  margin:auto!important;
  box-sizing:border-box;
  color:var(--ink);
}
dialog[open]{display:flex!important;align-items:center;justify-content:center;z-index:2147483000!important}

/* 二次确认弹窗始终在视口正中央，并提供清晰但不生硬的层级。 */
.app-confirm-dialog{
  width:min(460px,calc(100vw - 32px));
  max-width:460px;
  max-height:calc(100dvh - 32px);
  overflow:visible;
  border-radius:22px;
  box-shadow:none;
}
.app-confirm-dialog::backdrop{
  background:rgba(48,42,35,.14);
  backdrop-filter:blur(3px) saturate(115%);
  -webkit-backdrop-filter:blur(3px) saturate(115%);
}
.confirm-card{
  overflow:hidden;
  padding:26px;
  border:1px solid rgba(255,253,248,.92);
  border-radius:22px;
  background:rgba(255,253,248,.94);
  box-shadow:0 2px 8px rgba(48,42,35,.04),0 28px 80px rgba(48,42,35,.16);
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
}
.confirm-copy h2,.confirm-copy h3{margin:4px 0 8px;color:var(--ink);font-size:22px;line-height:1.25;letter-spacing:-.025em}
.confirm-copy>[data-confirm-message]{color:var(--muted);line-height:1.65}
.confirm-kicker{color:var(--primary);font-size:11px;font-weight:650;letter-spacing:.08em}
.confirm-visual{border:1px solid rgba(150,98,63,.10);border-radius:15px;background:var(--primary-soft);box-shadow:inset 0 1px rgba(255,253,248,.72)}
.confirm-detail{border:1px solid var(--line);background:rgba(247,243,235,.78)}
.confirm-actions{padding-top:2px;border-top:1px solid rgba(48,42,35,.055)}

/* 公告只轻微压暗背景，页面内容仍然清晰可见；公告卡片本身采用透明玻璃。 */
.announcement-dialog{
  width:min(640px,calc(100vw - 32px));
  max-width:640px;
  max-height:min(82dvh,760px);
  overflow:hidden;
  border-radius:22px;
  box-shadow:none;
  padding:0!important;
}
.announcement-dialog::backdrop{
  background:rgba(247,243,235,.08);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.announcement-modal-card{
  display:flex;
  flex-direction:column;
  max-height:min(82dvh,760px);
  overflow:hidden;
  border:1px solid rgba(255,253,248,.92);
  border-radius:22px;
  background:rgba(255,253,248,.88);
  box-shadow:0 2px 8px rgba(48,42,35,.035),0 28px 90px rgba(48,42,35,.14);
  backdrop-filter:blur(28px) saturate(170%);
  -webkit-backdrop-filter:blur(28px) saturate(170%);
}
.announcement-modal-head{flex:0 0 auto;border-bottom:1px solid rgba(48,42,35,.07)}
.announcement-modal-body{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable}
.announcement-progress{flex:0 0 auto;border:1px solid rgba(48,42,35,.035);background:rgba(150,98,63,.12)}
.announcement-modal-actions{flex:0 0 auto;border-top:1px solid rgba(48,42,35,.055)}

/* 统一界面边框与高光，增强层次但保持 Apple 风格克制。 */
.card,.table-card,.stat-card,.mapping-card,.database-card,.mobile-record-card,.synced-category-card,.selection-card,.source-item,.storage-card,.quick-action{
  border-color:rgba(48,42,35,.075);
  box-shadow:inset 0 1px rgba(255,253,248,.88),var(--shadow-sm);
}
.card:hover,.table-card:hover,.mapping-card:hover,.database-card:hover,.mobile-record-card:hover,.synced-category-card:hover,.source-item:hover,.quick-action:hover{
  border-color:rgba(150,98,63,.16);
}
input,select,textarea{
  border-color:rgba(48,42,35,.12);
  box-shadow:inset 0 1px 2px rgba(48,42,35,.025),0 1px rgba(255,253,248,.75);
}
input:hover,select:hover,textarea:hover{border-color:rgba(48,42,35,.19)}
input:focus,select:focus,textarea:focus{border-color:rgba(150,98,63,.48);box-shadow:0 0 0 4px rgba(150,98,63,.10),inset 0 1px 2px rgba(48,42,35,.02)}
.table-card thead th{border-bottom:1px solid rgba(48,42,35,.09)}
.table-card tbody td{border-bottom-color:rgba(48,42,35,.06)}
.nav-item.active{border-color:rgba(150,98,63,.09);box-shadow:inset 0 0 0 1px rgba(255,253,248,.42)}
.button.secondary,.button.ghost,.action-button,.icon-button,.close-button,.menu-button{border-color:rgba(48,42,35,.11)}

@supports not ((backdrop-filter:blur(20px)) or (-webkit-backdrop-filter:blur(20px))){
  .confirm-card,.announcement-modal-card{background:rgba(255,253,248,.98)!important}
  .announcement-dialog::backdrop{background:rgba(247,243,235,.08)}
}

@media(max-width:620px){
  .app-confirm-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto!important}
  .confirm-card{padding:22px;border-radius:20px}
  .confirm-actions{gap:8px}
  .confirm-actions .button{flex:1;min-width:0}
  .announcement-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto!important}
  .announcement-modal-card{max-height:calc(100dvh - 24px);border-radius:20px}
  .announcement-modal-head{padding:20px 18px 16px}
  .announcement-modal-head h2{font-size:22px}
  .announcement-modal-body{max-height:none;padding:18px}
  .announcement-progress{margin:0 18px}
  .announcement-modal-actions{padding:16px 18px 18px}
}

@media(max-width:380px){
  .confirm-card{padding:19px}
  .confirm-actions{flex-direction:column-reverse}
  .confirm-actions .button{width:100%}
}

/* ========================================================================
   v1.0.55 · 访客首页与更舒展的公告弹窗
   ======================================================================== */
.home-page{min-height:100vh;color:var(--ink);background:#ffffff}
.home-nav{
  position:sticky;
  z-index:80;
  top:0;
  display:flex;
  height:72px;
  padding:0 clamp(20px,4vw,64px);
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid rgba(48,42,35,.075);
  background:rgba(255,253,248,.84);
  box-shadow:0 1px 0 rgba(255,253,248,.72);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
}
.home-brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.home-brand>span:last-child{display:grid;gap:2px}
.home-brand strong{font-size:15px;font-weight:650;letter-spacing:0}
.home-brand small{color:var(--muted);font-size:11px;font-weight:550;letter-spacing:.08em}
.home-nav-actions{display:flex;align-items:center;gap:9px}
.home-nav-link{padding:10px 12px;color:var(--muted);font-size:14px;font-weight:550;text-decoration:none;transition:color .2s ease}
.home-nav-link:hover{color:var(--primary)}
.home-nav-actions .button{min-width:82px}
.home-hero{
  position:relative;
  height:calc(100svh - 124px);
  min-height:480px;
  max-height:720px;
  overflow:hidden;
  border-bottom:1px solid rgba(48,42,35,.07);
  background:#f1f4fc;
  isolation:isolate;
}
.home-hero-media{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:.28;filter:saturate(.76) contrast(.94) brightness(1.05)}
.home-hero-veil{position:absolute;z-index:-2;inset:0;background:rgba(255,253,248,.86)}
.home-hero-inner{display:flex;width:min(1240px,100%);height:100%;margin:auto;padding:48px clamp(22px,6vw,88px);align-items:center}
.home-hero-copy{width:min(650px,100%)}
.home-kicker{display:block;margin-bottom:18px;color:var(--primary);font-size:12px;font-weight:650;letter-spacing:.11em}
.home-hero-copy h1{margin:0;color:#1e1f20;font-size:58px;font-weight:680;line-height:1.08;letter-spacing:0}
.home-hero-copy p{max-width:620px;margin:22px 0 0;color:#4a4e60;font-size:17px;line-height:1.8}
.home-hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:30px}
.home-hero-actions .button{min-width:138px;min-height:48px;padding:12px 20px;border-radius:13px;font-size:15px}
.home-secondary-action{border:1px solid rgba(48,42,35,.10);color:var(--ink);background:rgba(255,253,248,.82);box-shadow:var(--shadow-xs);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.home-secondary-action:hover{border-color:rgba(150,98,63,.18);background:#ffffff}
.home-trust-row{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;color:#717792;font-size:13px;font-weight:550}
.home-trust-row span{display:inline-flex;align-items:center;gap:8px}
.home-trust-row span::before{content:"";width:6px;height:6px;border-radius:50%;background:#34c759;box-shadow:0 0 0 4px rgba(52,199,89,.10)}
.home-capabilities{padding:72px clamp(22px,6vw,88px) 80px;background:#ffffff}
.home-section-head,.home-capability-grid{width:min(1120px,100%);margin-inline:auto}
.home-section-head{margin-bottom:32px}
.home-section-head h2{max-width:720px;margin:0;color:var(--ink);font-size:34px;line-height:1.25;letter-spacing:0}
.home-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.home-capability-grid article{min-height:210px;padding:26px;border:1px solid rgba(48,42,35,.08);border-radius:18px;background:#ffffff;box-shadow:var(--shadow-sm);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.home-capability-grid article:hover{transform:translateY(-3px);border-color:rgba(150,98,63,.16);box-shadow:var(--shadow)}
.home-step{display:inline-flex;margin-bottom:34px;color:var(--primary);font-size:13px;font-weight:650}
.home-capability-grid h3{margin:0;color:var(--ink);font-size:19px;letter-spacing:0}
.home-capability-grid p{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.75}
.home-footer{display:flex;padding:25px clamp(22px,6vw,88px);align-items:center;justify-content:space-between;gap:20px;border-top:1px solid rgba(48,42,35,.07);color:var(--muted);background:#f7f7f7;font-size:13px}
.auth-panel{position:relative}
.auth-back-button{position:absolute;top:14px;left:24px;display:inline-flex;min-height:40px;padding:8px 11px;align-items:center;gap:7px;border:1px solid var(--line);border-radius:12px;color:var(--ink-2);background:rgba(255,253,248,.80);box-shadow:var(--shadow-xs);font-size:13px;font-weight:600;transition:transform .2s ease,border-color .2s ease,background .2s ease}
.auth-back-button:hover{transform:translateY(-1px);border-color:rgba(150,98,63,.18);background:#ffffff}

.announcement-dialog{width:min(760px,calc(100vw - 48px));max-width:760px;max-height:calc(100dvh - 48px)}
.announcement-modal-card{
  width:100%;
  min-height:430px;
  max-height:calc(100dvh - 48px);
  box-sizing:border-box;
  border-radius:24px;
}
.announcement-modal-head{padding:32px 34px 25px;gap:28px}
.announcement-modal-head h2{font-size:30px;line-height:1.25;letter-spacing:0}
.announcement-modal-head .eyebrow{margin-bottom:11px;font-size:12px}
.announcement-counter{padding-top:5px;font-size:13px}
.announcement-modal-body{min-height:190px;padding:30px 34px;color:var(--ink-2);font-size:15px;line-height:1.85}
.announcement-progress{height:4px;margin:0 34px}
.announcement-modal-actions{padding:22px 34px 28px}
.announcement-modal-actions small{font-size:13px}
.announcement-modal-actions .button{min-width:150px;min-height:46px;font-size:14px}

@media(max-width:820px){
  .home-capability-grid{grid-template-columns:1fr}
  .home-capability-grid article{min-height:0}
  .home-step{margin-bottom:22px}
}

@media(max-width:620px){
  .home-nav{height:64px;padding:0 16px;gap:12px}
  .home-brand .brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:12px}
  .home-brand small,.home-nav-link{display:none}
  .home-brand strong{font-size:14px}
  .home-nav-actions{gap:6px}
  .home-nav-actions .button{min-width:66px;min-height:38px;padding:8px 11px;font-size:13px}
  .home-hero{height:calc(100svh - 112px);min-height:510px;max-height:680px}
  .home-hero-media{object-position:62% top;opacity:.20}
  .home-hero-veil{background:rgba(255,253,248,.90)}
  .home-hero-inner{padding:36px 20px;align-items:flex-end}
  .home-kicker{margin-bottom:14px;font-size:11px}
  .home-hero-copy h1{font-size:43px;line-height:1.1}
  .home-hero-copy p{margin-top:17px;font-size:15px;line-height:1.7}
  .home-hero-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:24px}
  .home-hero-actions .button{min-width:0;width:100%;min-height:46px;padding-inline:12px;font-size:14px}
  .home-trust-row{gap:8px 16px;margin-top:22px;font-size:12px}
  .home-capabilities{padding:58px 18px 64px}
  .home-section-head h2{font-size:28px}
  .home-capability-grid{gap:12px}
  .home-capability-grid article{padding:22px;border-radius:16px}
  .home-footer{padding:22px 18px;align-items:flex-start;flex-direction:column;gap:5px}
  .auth-back-button{position:static;align-self:flex-start;margin:0 0 14px 0}

  .announcement-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .announcement-modal-card{width:100%;min-height:min(480px,calc(100dvh - 20px));max-height:calc(100dvh - 20px);border-radius:22px}
  .announcement-modal-head{padding:25px 22px 20px}
  .announcement-modal-head h2{font-size:26px}
  .announcement-modal-head .eyebrow{font-size:11px}
  .announcement-counter{margin-top:9px;padding:0;font-size:12px}
  .announcement-modal-body{min-height:160px;padding:24px 22px;font-size:15px;line-height:1.8}
  .announcement-progress{margin:0 22px}
  .announcement-modal-actions{padding:20px 22px 22px;gap:14px}
  .announcement-modal-actions small{font-size:12px}
  .announcement-modal-actions .button{min-height:48px}
}

@media(max-width:380px){
  .home-brand>span:last-child{display:none}
  .home-hero-copy h1{font-size:38px}
  .home-trust-row span:last-child{display:none}
}

/* ================================================================
   v1.0.55 · 套餐、支付与订单（Apple / macOS Sonoma）
   ================================================================ */
.commerce-view,.commerce-admin-page{display:grid;gap:24px;min-width:0}
.commerce-heading,.commerce-admin-heading{align-items:flex-end}
.commerce-message:empty{display:none}
.subscription-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:24px 26px;border:1px solid rgba(150,98,63,.12);border-radius:22px;background:linear-gradient(135deg,rgba(150,98,63,.075),rgba(255,253,248,.96) 55%,rgba(150,98,63,.055));box-shadow:0 18px 45px rgba(89,69,55,.08);overflow:hidden}
.subscription-card:after{content:"";position:absolute;right:-70px;top:-80px;width:210px;height:210px;border-radius:50%;background:rgba(150,98,63,.055);filter:blur(2px);pointer-events:none}
.subscription-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#ffffff;color:#7f85a2;font-size:25px;font-weight:700;box-shadow:0 10px 28px rgba(150,98,63,.13)}
.subscription-icon.active{background:#7f85a2;color:#ffffff}.subscription-card h3{margin:4px 0 5px;font-size:22px;letter-spacing:-.02em}.subscription-card p{margin:0;color:#717792;font-size:14px}.subscription-badge{position:relative;z-index:1;padding:7px 11px;border-radius:999px;background:#f1f4fc;color:#7f85a2;font-size:12px;font-weight:700}.subscription-badge.active{background:#e7e8ed;color:#1d7d42}
.commerce-section{display:grid;gap:18px}.commerce-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.commerce-section-head h2{margin:0 0 5px;font-size:23px;letter-spacing:-.025em}.commerce-section-head p{margin:0;color:#7f85a2;font-size:14px}
.payment-method-picker{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.payment-method-option{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid rgba(48,42,35,.075);border-radius:12px;background:rgba(255,253,248,.92);color:#4a4e60;font-size:13px;font-weight:650;cursor:pointer;transition:.2s ease}.payment-method-option:hover{transform:translateY(-1px);border-color:rgba(150,98,63,.28);box-shadow:0 8px 18px rgba(48,42,35,.055)}.payment-method-option.active{border-color:rgba(150,98,63,.26);background:#f7f7f7;color:#717792}.payment-method-option input{position:absolute;opacity:0;pointer-events:none}.payment-method-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#ffffff;color:#7f85a2;font-size:11px;font-weight:800;box-shadow:0 2px 7px rgba(48,42,35,.07)}.payment-unavailable{padding:9px 12px;border-radius:12px;background:#f1f4fc;color:#7f85a2;font-size:13px}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.plan-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:24px;border:1px solid rgba(48,42,35,.065);border-radius:22px;background:rgba(255,253,248,.92);box-shadow:0 14px 38px rgba(48,42,35,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}.plan-card:hover{transform:translateY(-3px);border-color:rgba(150,98,63,.18);box-shadow:0 20px 46px rgba(89,69,55,.09)}.plan-card.featured{border-color:rgba(150,98,63,.24);background:linear-gradient(165deg,#ffffff,#f7f7f7)}.plan-card-top{display:flex;align-items:center;justify-content:space-between;min-height:25px}.plan-index{color:#7f85a2;font-size:12px;font-weight:750;letter-spacing:.12em}.plan-recommend{padding:5px 9px;border-radius:999px;background:#7f85a2;color:#ffffff;font-size:11px;font-weight:750}.plan-card h3{margin:18px 0 8px;font-size:22px;letter-spacing:-.03em}.plan-description{min-height:42px;margin:0;color:#7f85a2;font-size:14px;line-height:1.55}.plan-price{display:flex;align-items:baseline;margin:23px 0 18px;color:#1e1f20}.plan-price>span{margin-right:3px;font-size:19px;font-weight:700}.plan-price strong{font-size:40px;line-height:1;letter-spacing:-.05em}.plan-price small{margin-left:6px;color:#7f85a2;font-size:12px}.plan-features{display:grid;gap:10px;margin:0 0 24px;padding:18px 0 0;border-top:1px solid rgba(48,42,35,.06);list-style:none;color:#4a4e60;font-size:13px}.plan-features li:before{content:"✓";display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border-radius:50%;background:#e7e8ed;color:#21864b;font-size:10px;font-weight:800}.plan-buy-button{width:100%;margin-top:auto}.commerce-empty{grid-column:1/-1}
.order-panel{overflow:hidden}.order-list{display:grid}.order-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:19px 22px;border-top:1px solid rgba(48,42,35,.055)}.order-item:first-child{border-top:0}.order-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.order-title strong{font-size:15px}.order-main p{margin:5px 0;color:#4a4e60;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.order-main small,.order-side span{color:#7f85a2;font-size:12px}.order-side{display:grid;justify-items:end;gap:5px}.order-side>strong{font-size:18px}.order-status{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:#f1f4fc;color:#717792;font-size:11px;font-weight:750}.order-status.pending{background:#fff3df;color:#9a6100}.order-status.paid{background:#e7e8ed;color:#18783e}.order-status.closed{background:#f1f4fc;color:#717792}
.commerce-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.commerce-summary-card{display:grid;gap:7px;padding:20px 22px;border:1px solid rgba(48,42,35,.055);border-radius:19px;background:#ffffff;box-shadow:0 10px 30px rgba(48,42,35,.045)}.commerce-summary-card span{color:#7f85a2;font-size:12px;font-weight:700}.commerce-summary-card strong{font-size:28px;letter-spacing:-.04em}.commerce-summary-card small{color:#7f85a2;font-size:12px}.commerce-summary-card.blue{background:linear-gradient(145deg,#f1f4fc,#ffffff)}.commerce-summary-card.green{background:linear-gradient(145deg,#f1f4fc,#ffffff)}.commerce-summary-card.orange{background:linear-gradient(145deg,#f1f4fc,#ffffff)}.commerce-summary-card.violet{background:linear-gradient(145deg,#f7f7f7,#ffffff)}
.admin-commerce-card{overflow:hidden}.table-subline{display:block;max-width:360px;margin-top:5px;color:#7f85a2;font-size:11px;font-weight:400;white-space:normal}.compact-actions{justify-content:flex-end;flex-wrap:nowrap}.plan-form-card{width:min(700px,calc(100vw - 28px))}.plan-form-card textarea{resize:vertical}.order-admin-tools{display:flex;align-items:center;gap:10px}.order-admin-tools select{min-width:150px}.payment-admin-grid{align-items:start}.payment-flow{display:grid;gap:12px;padding:8px 0 18px}.payment-flow>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:2px 11px;align-items:center;padding:13px;border-radius:15px;background:#f7f7f7}.payment-flow>div>span{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:#ffffff;color:#7f85a2;font-size:12px;font-weight:800;box-shadow:0 5px 14px rgba(48,42,35,.055)}.payment-flow strong{font-size:13px}.payment-flow small{color:#7f85a2;font-size:11px}.payment-method-fieldset{margin:0;padding:0;border:0}.payment-method-fieldset legend{margin-bottom:9px;color:#4a4e60;font-size:13px;font-weight:700}.payment-method-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.payment-method-checks label{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid rgba(48,42,35,.07);border-radius:13px;background:#f7f7f7;cursor:pointer}.payment-method-checks input{accent-color:#7f85a2}.payment-method-checks span{font-size:13px;font-weight:650}.order-admin-card .order-status{flex:none}

@media(max-width:1050px){.plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-admin-grid{grid-template-columns:1fr}.admin-desktop-table{display:none!important}.commerce-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.commerce-view,.commerce-admin-page{gap:16px}.commerce-heading,.commerce-admin-heading,.commerce-section-head{align-items:stretch;flex-direction:column}.commerce-heading>.button,.commerce-admin-heading>.button{width:100%}.subscription-card{grid-template-columns:auto minmax(0,1fr);gap:13px;padding:18px;border-radius:18px}.subscription-icon{width:44px;height:44px;border-radius:14px}.subscription-card h3{font-size:18px}.subscription-badge{grid-column:2;justify-self:start}.payment-method-picker{justify-content:flex-start;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:none}.payment-method-option{flex:none}.plans-grid,.commerce-summary-grid{grid-template-columns:1fr}.plan-card{padding:20px;border-radius:19px}.plan-card h3{margin-top:14px}.plan-price{margin:19px 0 15px}.plan-price strong{font-size:34px}.order-item{grid-template-columns:1fr;padding:17px}.order-side{grid-template-columns:1fr auto;align-items:center;justify-items:start}.order-side .action-button{grid-column:1/-1;width:100%;margin-top:5px}.order-admin-tools{width:100%;display:grid;grid-template-columns:1fr 1fr}.order-admin-tools select,.order-admin-tools .button{width:100%;min-width:0}.payment-method-checks{grid-template-columns:1fr}.commerce-summary-card{padding:17px 18px}.commerce-summary-card strong{font-size:24px}}


/* v1.0.55 QA：单选框沿用全局 input 宽度时会撑破页面，改为无障碍隐藏尺寸。 */
.payment-method-option{position:relative}
.payment-method-option input[type="radio"]{position:absolute;width:1px;height:1px;min-height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* 手机登录注册保留品牌，省去重复的大幅介绍，让表单直接可见。 */
@media(max-width:700px){
  #authView .brand-panel{min-height:0!important;padding:18px 20px!important;margin:0 12px!important;border-radius:18px!important}
  #authView .brand-panel .hero-copy,#authView .brand-panel .feature-list{display:none!important}
  #authView .brand-large{font-size:17px!important}
  #authView .auth-panel{padding-top:16px!important}
  #authView .auth-card{margin-top:8px!important}
}


/* 小韭菜 v1.0.55：纯白界面，柔和层级；交互沿用原生 JS。 */
:root{--bg:#ffffff;--soft:#f7f7f7;--ink:#1e1f20;--muted:#7f85a2;--primary:#7f85a2;--primary-soft:#f7f7f7;--line:rgba(48,42,35,.07);--shadow:0 3px 20px rgba(48,42,35,.035);--shadow-lg:0 12px 48px rgba(48,42,35,.09)}
html,body,.admin-body,.shell,.workspace,.content-view{background:#ffffff!important;color:#1e1f20}
body,input,select,textarea,button{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:-.015em}
h1,h2,h3,strong{font-weight:600}h1{letter-spacing:-.04em}.eyebrow{font-weight:550;letter-spacing:.03em}
.background-grid,.home-orb,.stat-watermark{display:none!important}
.sidebar{background:#ffffff!important;border-right:1px solid var(--line);box-shadow:none!important;backdrop-filter:none}
.topbar{background:rgba(255,253,248,.94)!important;border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:blur(20px)}
.nav-item{border-radius:12px;transition:background .2s ease,color .2s ease}.nav-item.active{background:#f7f7f7!important;color:#7f85a2!important;box-shadow:none!important}
.table-card,.card,.mapping-card,.plan-card,.subscription-card,.mobile-record-card,.settings-card,.auth-panel,.hero-card{border:1px solid var(--line);border-radius:24px;background:#ffffff!important;box-shadow:var(--shadow)!important}
.table-head,.modal-head{border-color:var(--line)}
input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:46px;border:1px solid rgba(48,42,35,.12);border-radius:13px;background:#ffffff;color:var(--ink);box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:#9398ae!important;box-shadow:0 0 0 3px rgba(150,98,63,.08)!important}
.button{min-height:42px;border-radius:12px;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;font-weight:550}
.button.primary{background:#7f85a2;box-shadow:0 3px 10px rgba(150,98,63,.13)}
.button.secondary,.button.ghost{background:#f7f7f7;border-color:var(--line);box-shadow:none}
@media(hover:hover){.button:not(:disabled):hover{transform:translateY(-1px)}.plan-card:hover,.mapping-card:hover{box-shadow:0 6px 24px rgba(48,42,35,.055)!important}}
/* 外壳完全透明且无阴影，宽度由唯一的内容卡片铺满，消除截图中的背后双层框。 */
dialog{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:visible!important;border-radius:24px!important;max-height:calc(100dvh - 32px)!important}
dialog[open]{display:block!important}
dialog>.modal-card,dialog>.confirm-card,dialog>.announcement-modal-card{box-sizing:border-box;width:100%!important;min-width:0;max-width:none!important;margin:0!important;max-height:calc(100dvh - 32px)!important;overflow:auto;border:1px solid rgba(48,42,35,.06)!important;border-radius:24px!important;background:#ffffff!important;box-shadow:0 12px 48px rgba(48,42,35,.11)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
dialog>.modal-card{padding:28px;gap:20px}
dialog::backdrop{background:rgba(48,42,35,.10)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.announcement-dialog::backdrop{background:rgba(48,42,35,.045)!important}
.modal-head h2{font-size:23px}.modal-head p,.field-note{font-size:13px;color:var(--muted);line-height:1.6}
.modal-actions{padding-top:8px;gap:10px}.close-button{box-shadow:none;border:1px solid var(--line);background:#f7f7f7}
.setup-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 32px 0}
.setup-step{display:flex;align-items:center;gap:12px;padding:16px 20px;border:1px solid var(--line);border-radius:20px;background:#ffffff;min-width:0}
.setup-step>div{flex:1;min-width:0}.setup-step small,.setup-step strong{display:block;overflow-wrap:anywhere}.setup-step small{font-size:12px;color:var(--muted);margin-bottom:4px}.setup-step strong{font-size:14px;font-weight:550}
.setup-indicator{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#f7f7f7;color:#7f85a2;font-size:13px}.complete .setup-indicator{background:#f1f4fc;color:#4c8b71}
.setup-step .button{font-size:12px;min-height:34px;padding:6px 12px;white-space:nowrap}
.setup-retry{grid-column:1/-1;padding:12px;color:var(--muted);font-size:13px}
.subscription-editor{border:0;border-top:1px solid var(--line);padding:20px 0 0;margin:0;min-width:0}.subscription-editor legend{padding:0 8px 0 0;font-size:15px;font-weight:600}.subscription-editor .form-grid{margin-top:12px}.subscription-editor small{color:var(--muted);font-size:12px}
.user-plan-caption{display:block;color:#7f85a2;font-size:11px;font-weight:400;line-height:1.5}.user-table-cell{flex-wrap:wrap}.user-table-cell .user-plan-caption{flex-basis:100%;padding-left:40px}
.home-view,.home-hero,.home-section,.auth-layout{background:#ffffff!important}.home-hero{box-shadow:none!important}.home-hero h1{font-weight:600}.home-preview,.home-metric{box-shadow:var(--shadow)!important;background:#ffffff!important}
@media(max-width:760px){
 .setup-status{margin:16px 16px 0;gap:10px;grid-template-columns:1fr}.setup-step{padding:12px 14px;border-radius:16px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;min-width:0}
 dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important}
 dialog>.modal-card,dialog>.confirm-card,dialog>.announcement-modal-card{max-height:calc(100dvh - 24px)!important;border-radius:20px!important}
 dialog>.modal-card{padding:20px;gap:16px}.modal-head h2{font-size:21px}.modal-actions{flex-wrap:wrap}.modal-actions .button{flex:1}
 .subscription-editor .form-grid{grid-template-columns:minmax(0,1fr)}.subscription-editor .span-2{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* 保持导航轻盈，不把每个入口都渲染成灰色按钮。 */
.sidebar .nav-item{background:transparent;box-shadow:none;font-weight:450}
.sidebar .nav-item:hover{background:#ffffff}
.customer-intro h1,.section-heading h1,.mapping-head h1{font-size:32px;font-weight:550;line-height:1.25}
.content-view>.page-intro .eyebrow,.content-view>.mapping-head .eyebrow,.content-view>.section-heading .eyebrow{display:none}
@media(max-width:760px){.customer-intro h1,.section-heading h1,.mapping-head h1{font-size:26px}}


/* v1.0.55：克制的层次、紧凑布局，以及真正可操作的手机导航。 */
:root{--accent-soft:#f7f7f7;--line:rgba(48,42,35,.075)}
.sidebar{top:0!important;bottom:0!important;height:100vh!important;height:100dvh!important;max-height:none!important;box-sizing:border-box;padding-bottom:max(16px,env(safe-area-inset-bottom))!important;overflow:hidden}
.sidebar-brand,.sidebar-account,.sidebar-foot,.sidebar-toggle{flex-shrink:0}
.sidebar-nav{min-height:0;flex:1;align-content:start;overscroll-behavior:contain}
.sidebar-foot{margin-top:12px}
.sidebar .sidebar-account{width:calc(100% - 6px);text-align:left;cursor:pointer;color:#1e1f20;min-height:64px;transition:background .2s,box-shadow .2s}
.sidebar-account:hover{background:#f7f7f7!important;box-shadow:0 3px 14px rgba(150,98,63,.05)!important}
.sidebar-account>div{min-width:0;flex:1}.sidebar-account strong{max-width:100%;font-weight:600}.sidebar-account .qq-avatar{width:40px!important;height:40px!important;flex-shrink:0}
.account-chevron{color:#9398ae;font-size:22px}.sidebar-toggle{display:none}.sidebar-overlay[hidden]{display:none!important}
.sidebar-overlay{position:fixed;inset:0;z-index:39;border:0;border-radius:0;background:rgba(48,42,35,.12);width:100%;height:100%;padding:0;box-shadow:none}
.brand-mark{box-shadow:0 5px 16px rgba(150,98,63,.12)!important;border:1px solid rgba(150,98,63,.12)}
.nav-item.active{background:linear-gradient(90deg,#f1f4fc,#f7f7f7)!important}
.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:7px;letter-spacing:.06em}
.eyebrow:before,.section-kicker:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#7f85a2;opacity:.6}
.page-intro,.customer-intro{margin-bottom:18px}.page-intro h1,.customer-intro h1{font-size:28px!important}
.content-view,.admin-content{padding-top:24px}.table-head{padding:18px 22px}.quick-action{border-radius:16px;transition:transform .2s,background .2s}.quick-action:hover{transform:translateY(-2px);background:#ffffff}
.connection-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin-bottom:20px}
.connection-stats .stat-card{min-height:0!important;padding:16px 20px!important;display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;border-radius:20px!important}
.connection-stats .stat-card strong{font-size:30px!important;line-height:1.1;grid-column:2;grid-row:1 / 3;margin:0!important}
.connection-stats .stat-card small{font-size:11px;grid-column:1}.connection-stats .stat-watermark{display:none}.connection-stats .stat-label{font-size:13px}
.email-suggestions{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:none;max-height:200px;scrollbar-width:thin;z-index:120}
.email-suggestions [role=option]{min-height:40px}.email-suggestions [role=option]:active{background:#f1f4fc}
/* 长设置表单仍可滚动，不靠裁剪伪装一屏显示。 */
.admin-page .form-grid,.modal-card .form-grid{gap:14px 18px}.admin-page form:not(.inline),.modal-card{font-size:14px}
.admin-page label,.modal-card label{gap:6px}.admin-page input:not([type=checkbox]):not([type=radio]),.admin-page select,.modal-card input:not([type=checkbox]):not([type=radio]),.modal-card select{min-height:42px;padding:10px 12px}
.admin-page textarea{min-height:110px}.admin-page .table-card{border-radius:20px}.modal-card .modal-head p:empty,.message:empty{display:none}
.profile-summary{padding:12px 16px!important}.subscription-editor{padding:14px;margin:0;border-radius:14px}
dialog.profile-dialog>.modal-card,dialog.connection-dialog>.modal-card{padding:22px!important;gap:16px!important}.modal-head h2{font-size:22px}.modal-actions{margin-top:6px}
.mail-settings-grid,.payment-settings-grid{gap:18px}.settings-card{padding:22px}
button:focus-visible,a:focus-visible{outline:2px solid #7f85a2;outline-offset:3px}
@media(max-width:860px){
 .sidebar-is-open{overflow:hidden}.sidebar{z-index:50;width:min(304px,calc(100vw - 38px))!important;padding-top:max(16px,env(safe-area-inset-top))!important}
 .sidebar-toggle{display:flex;align-items:center;justify-content:center;position:absolute;right:12px;top:max(18px,env(safe-area-inset-top));width:38px;height:38px;border:1px solid #e7e8ed;border-radius:11px;background:#f7f7f7;color:#7f85a2;font-size:23px;padding:0}
 .sidebar-brand{padding-right:42px}.sidebar-brand .brand-copy strong{font-size:12px}.sidebar-account{margin-top:4px}.sidebar .sidebar-account strong{font-size:13px}
 .connection-stats{gap:8px!important}.connection-stats .stat-card{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:14px 12px!important;border-radius:16px!important}
 .connection-stats .stat-card strong{font-size:27px!important}.connection-stats .stat-card small{display:none}.connection-stats .stat-label{font-size:12px;white-space:nowrap}
 .content-view,.admin-content{padding:20px 14px 40px}.page-intro h1,.customer-intro h1{font-size:25px!important}
 dialog.profile-dialog>.modal-card,dialog.connection-dialog>.modal-card{padding:18px!important;gap:14px!important}
 .email-suggestions{max-height:180px}.form-grid{gap:12px!important}.table-head{padding:16px}.settings-card{padding:18px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.quick-action:hover{transform:none}}
/* 大屏保留白色基底，地图为离线矢量，不依赖远端图表脚本。 */
.screen-toolbar{display:flex;flex-wrap:wrap;gap:8px}.data-screen{width:100%;background:#ffffff}.data-screen:fullscreen{overflow:auto;padding:24px;background:#ffffff}
.screen-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}
.screen-kpi{padding:20px 24px;border:1px solid #e7e8ed;border-radius:20px;background:linear-gradient(140deg,#f7f7f7,#ffffff)}
.screen-kpi small{color:#7f85a2}.screen-kpi strong{display:block;margin-top:10px;font-size:32px;font-weight:600;letter-spacing:-.04em}
.screen-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:18px}
.map-panel,.region-panel,.geo-settings{border:1px solid #e7e8ed;border-radius:22px;padding:22px;box-shadow:0 5px 24px rgba(48,42,35,.025);min-width:0}
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-heading h3{margin:0;font-size:17px}.map-heading small{color:#7f85a2}
.geo-map{position:relative;aspect-ratio:900/560;margin-top:14px;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at 60% 40%,#f7f7f7,#ffffff)}
.geo-map svg{display:block;width:100%;height:100%}.map-grid{stroke:#f1f4fc;stroke-width:1}.map-point{fill:#7f85a2;stroke:#ffffff;stroke-width:2;cursor:pointer}.map-point:focus{outline:none;stroke:#4a4e60;stroke-width:3}
.map-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.map-empty span{padding:12px 18px;background:rgba(255,253,248,.94);border:1px solid #e7e8ed;border-radius:12px;color:#7f85a2;font-size:13px}
.map-selection{min-height:23px;font-size:13px;color:#717792;margin-top:10px}.region-list{list-style:none;padding:0;margin:16px 0;max-height:320px;overflow:auto}.region-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f1f4fc;font-size:13px}.region-list b{color:#7f85a2}.screen-caption{font-size:12px;color:#7f85a2;line-height:1.7}
.geo-settings{margin-top:18px}.geo-settings summary{cursor:pointer;font-weight:600}.geo-settings form{margin-top:18px;display:grid;gap:14px;max-width:700px}.geo-settings .checkbox-row{display:flex;gap:10px;align-items:center}.geo-settings .checkbox-row input{width:18px;min-height:18px;height:18px}.geo-settings .screen-caption{margin:0}
@media(max-width:900px){.screen-grid{grid-template-columns:1fr}.screen-kpis{grid-template-columns:repeat(2,1fr);gap:10px}.screen-kpi{padding:16px}.screen-kpi strong{font-size:28px}.map-panel,.region-panel,.geo-settings{padding:16px}.screen-toolbar .button{font-size:12px;padding:9px 12px}.map-heading{align-items:flex-start;flex-direction:column}}
.map-empty[hidden]{display:none!important}

/* v1.0.55：服务端按访问 IP 粗略定位，无浏览器权限弹窗。 */
.screen-auto-location{display:flex;align-items:center;gap:12px;margin:16px 0;padding:14px 16px;border:1px solid #e7e8ed;border-radius:16px;background:linear-gradient(135deg,#f7f7f7,#ffffff);color:#1e1f20}
.screen-auto-location>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:12px;background:#7f85a2;color:#ffffff;box-shadow:0 8px 18px rgba(150,98,63,.18)}
.screen-auto-location strong,.screen-auto-location small{display:block}.screen-auto-location strong{font-size:13px}.screen-auto-location small{margin-top:3px;color:#7f85a2;font-size:11px;line-height:1.55}


/* v1.0.55：QQ 头像使用固定正方形画布和 cover 裁剪，避免左右账号区被压缩或截断。 */
.avatar,.qq-avatar,.table-avatar,.account-trigger-avatar{
  display:inline-grid!important;place-items:center!important;overflow:hidden!important;
  min-width:36px;min-height:36px;aspect-ratio:1/1;
  border-radius:50%!important;background-position:center!important;background-size:cover!important;
  background-repeat:no-repeat!important;line-height:1!important;
}
.sidebar-account #adminAvatar{flex:0 0 42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
.account-trigger #topAdminAvatar{flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
.account-popover-head #menuAdminAvatar{flex:0 0 42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
.profile-summary #profileAdminAvatar{flex:0 0 54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important}
.avatar img,.qq-avatar img,.table-avatar img,.account-trigger-avatar img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center!important;border-radius:inherit!important}
.sidebar-account,.account-trigger,.account-popover-head,.profile-summary{overflow:visible}


/* v1.0.55 数据大屏：修复旧脚本与新模板 ID 不一致造成的空白，并补齐加载/错误/零数据状态。 */
.data-screen{display:grid;gap:18px;max-width:1500px;margin:0 auto;padding-bottom:32px;background:#ffffff}
.data-screen:fullscreen{max-width:none;overflow:auto;padding:28px;background:#f1f4fc}
.screen-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 26px;border:1px solid rgba(48,42,35,.07);border-radius:24px;background:linear-gradient(135deg,#ffffff 0%,#f7f7f7 100%);box-shadow:0 12px 36px rgba(48,42,35,.055)}
.screen-hero h1{margin:6px 0 7px;font-size:32px;letter-spacing:-.045em}.screen-hero p{margin:0;color:#7f85a2;font-size:13px}.screen-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.screen-toolbar .button{white-space:nowrap}
.screen-alert{display:none;padding:13px 16px;border:1px solid #ffd5d2;border-radius:14px;background:#f7f7f7;color:#b42318;font-size:13px}.screen-alert.is-visible{display:block}.screen-alert.is-error{animation:screenReveal .22s ease both}
.screen-loading{display:none;align-items:center;gap:14px;padding:15px 18px;border:1px solid #e7e8ed;border-radius:16px;background:#f7f7f7;color:#1e1f20}.screen-loading.is-visible{display:flex}.screen-loading>span{width:22px;height:22px;border:2px solid #e7e8ed;border-top-color:#7f85a2;border-radius:50%;animation:screenSpin .8s linear infinite}.screen-loading strong,.screen-loading small{display:block}.screen-loading strong{font-size:13px}.screen-loading small{margin-top:3px;color:#7f85a2;font-size:11px}
.screen-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0}.screen-kpi{display:flex;align-items:center;gap:16px;min-height:126px;padding:20px;border:1px solid rgba(48,42,35,.065);border-radius:22px;background:#ffffff;box-shadow:0 10px 30px rgba(48,42,35,.045);transition:transform .2s ease,box-shadow .2s ease}.screen-kpi:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(48,42,35,.075)}
.screen-kpi-icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:15px;font-size:14px;font-weight:700}.tone-blue .screen-kpi-icon{background:#f1f4fc;color:#7f85a2}.tone-green .screen-kpi-icon{background:#f1f4fc;color:#168a54}.tone-violet .screen-kpi-icon{background:#f7f7f7;color:#7f85a2}.tone-orange .screen-kpi-icon{background:#f1f4fc;color:#c76b12}.screen-kpi>div{min-width:0}.screen-kpi small{color:#7f85a2;font-size:12px}.screen-kpi strong{display:block;margin-top:5px;font-size:32px;line-height:1.05;font-weight:650;letter-spacing:-.045em}.screen-kpi p{margin:7px 0 0;color:#7f85a2;font-size:11px;white-space:normal}
.screen-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.8fr);gap:16px}.map-panel,.region-panel{min-width:0;padding:22px;border:1px solid rgba(48,42,35,.07);border-radius:24px;background:#ffffff;box-shadow:0 12px 34px rgba(48,42,35,.045)}.map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.map-heading h3{margin:0;font-size:17px;letter-spacing:-.02em}.map-heading p{margin:5px 0 0;color:#7f85a2;font-size:12px}
.live-badge,.region-count{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#f1f4fc;color:#717792;font-size:11px;white-space:nowrap}.live-badge i{width:7px;height:7px;border-radius:50%;background:#34c759;box-shadow:0 0 0 4px rgba(52,199,89,.12)}
.geo-map{position:relative;aspect-ratio:900/560;margin-top:18px;overflow:hidden;border:1px solid #f1f4fc;border-radius:19px;background:radial-gradient(circle at 58% 42%,#f7f7f7 0,#f7f7f7 42%,#ffffff 78%)}.geo-map svg{display:block;width:100%;height:100%}.geo-map image{opacity:.78}.map-point{fill:#7f85a2;stroke:#ffffff;stroke-width:3;cursor:pointer;filter:drop-shadow(0 5px 7px rgba(150,98,63,.28));transform-box:fill-box;transform-origin:center;transition:transform .18s ease,fill .18s ease}.map-point:hover,.map-point:focus{fill:#717792;transform:scale(1.14);outline:none}
.map-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.map-empty[hidden]{display:none!important}.map-empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:12px;border-radius:17px;background:rgba(255,253,248,.9);box-shadow:0 10px 30px rgba(48,42,35,.08);color:#7f85a2;font-size:22px}.map-empty strong{font-size:14px}.map-empty p{max-width:280px;margin:7px 20px 0;color:#7f85a2;font-size:11px;line-height:1.6}.map-footer{display:grid;grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:18px;margin-top:12px}.map-selection{min-height:20px;color:#717792;font-size:12px}.coverage-track,.insight-track,.region-row-track{display:block;height:6px;overflow:hidden;border-radius:999px;background:#f1f4fc}.coverage-track span,.insight-track span,.region-row-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9398ae,#7f85a2);transition:width .45s ease}
.region-panel{display:flex;flex-direction:column}.region-list{list-style:none;display:grid;gap:4px;max-height:330px;margin:15px 0;padding:0;overflow:auto}.region-row{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:11px!important;padding:11px 4px!important;border-bottom:1px solid #f1f4fc!important}.region-rank{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:10px;background:#f7f7f7;color:#7f85a2;font-size:10px}.region-detail{min-width:0;flex:1}.region-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.region-row-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.region-row-top b{flex:0 0 auto;color:#7f85a2;font-size:11px}.region-row-track{height:4px}.region-empty{display:grid!important;place-items:center!important;gap:5px!important;min-height:132px!important;border:1px dashed #e7e8ed!important;border-radius:16px;color:#717792!important;text-align:center}.region-empty small{color:#7f85a2;font-size:10px}
.screen-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto}.screen-mini-stats>div{padding:13px;border-radius:15px;background:#f7f7f7}.screen-mini-stats span,.screen-mini-stats strong{display:block}.screen-mini-stats span{color:#7f85a2;font-size:10px}.screen-mini-stats strong{margin-top:5px;font-size:19px}.screen-auto-location{margin:12px 0 0!important;padding:12px 13px!important}.screen-auto-location>span{width:34px!important;height:34px!important;flex-basis:34px!important}.screen-auto-location small{font-size:10px!important}
.screen-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.screen-insight{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:19px 21px;border:1px solid rgba(48,42,35,.07);border-radius:20px;background:#ffffff;box-shadow:0 10px 28px rgba(48,42,35,.04)}.screen-insight>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.screen-insight-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:13px;font-weight:700}.screen-insight-icon.blue{background:#f1f4fc;color:#7f85a2}.screen-insight-icon.green{background:#f1f4fc;color:#168a54}.screen-insight strong{font-size:13px}.screen-insight p{margin:4px 0 0;color:#7f85a2;font-size:11px;line-height:1.45}.screen-insight>.insight-track{width:150px}.screen-state-pill{padding:7px 11px;border-radius:999px;background:#f1f4fc;color:#ad5a0b;font-size:11px;white-space:nowrap}.screen-state-pill.is-ready{background:#f1f4fc;color:#147b4d}
@keyframes screenSpin{to{transform:rotate(360deg)}}@keyframes screenReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.screen-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.screen-grid{grid-template-columns:1fr}.region-list{max-height:260px}}
@media(max-width:640px){.data-screen{gap:12px}.screen-hero{align-items:stretch;flex-direction:column;padding:19px;border-radius:20px}.screen-hero h1{font-size:27px}.screen-toolbar{display:grid;grid-template-columns:1fr 1fr}.screen-toolbar .button:first-child{grid-column:1/-1}.screen-kpis{grid-template-columns:1fr 1fr;gap:9px}.screen-kpi{display:block;min-height:142px;padding:15px;border-radius:18px}.screen-kpi-icon{width:36px;height:36px;margin-bottom:12px;border-radius:12px}.screen-kpi strong{font-size:26px}.map-panel,.region-panel{padding:16px;border-radius:20px}.map-heading{align-items:flex-start;flex-direction:row}.geo-map{margin-top:14px;border-radius:16px}.map-footer{grid-template-columns:1fr}.screen-bottom-grid{grid-template-columns:1fr}.screen-insight{padding:16px}.screen-insight>.insight-track{width:82px}.screen-auto-location{align-items:flex-start}.map-empty p{max-width:230px}.screen-mini-stats{gap:7px}}

/* v1.0.55 收尾：邮箱候选、邮件中心和 H5 全高侧栏。 */
.email-combobox{position:relative;display:block;width:100%;min-width:0}
.email-combobox>input{width:100%!important}
.email-suggestions{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:1400;display:block;max-height:220px!important;padding:6px;overflow-x:hidden;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;user-select:none;border:1px solid rgba(48,42,35,.09);border-radius:14px;background:rgba(255,253,248,.98);box-shadow:0 14px 38px rgba(48,42,35,.12);scrollbar-width:thin}
.email-suggestions[hidden]{display:none!important}
.email-suggestion-option{display:block;width:100%;min-height:43px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#1e1f20;text-align:left;font:inherit;cursor:pointer;touch-action:manipulation}
.email-suggestion-option:hover,.email-suggestion-option:focus-visible,.email-suggestion-option[aria-selected="true"]{outline:0;color:#7f85a2;background:#f1f4fc}
.sidebar{inset:0 auto 0 0!important;top:0!important;bottom:0!important;height:100vh!important;height:100dvh!important;min-height:100dvh!important;max-height:none!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;padding-bottom:0!important}
.sidebar-nav,.sidebar-scroll{min-height:0!important;flex:1 1 auto!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:24px!important}
.sidebar-foot{flex:0 0 auto!important;margin-top:0!important;padding-bottom:max(16px,env(safe-area-inset-bottom))!important;background:#ffffff}
.sidebar-toggle{z-index:1500!important;flex:0 0 auto!important}
.sidebar-is-open{overflow:hidden!important;overscroll-behavior:none}
.mail-settings-form{display:grid;gap:20px}
.mail-settings-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);gap:18px}
.mail-rule-card,.mail-broadcast-card,.mail-template-card{border:1px solid rgba(48,42,35,.075)!important;background:#ffffff;box-shadow:0 12px 34px rgba(48,42,35,.045)!important}
.mail-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mail-template-card{overflow:hidden;border-radius:20px!important}
.mail-template-card summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;cursor:pointer;list-style:none;transition:background .2s ease}
.mail-template-card summary::-webkit-details-marker{display:none}.mail-template-card summary:hover{background:#ffffff}.mail-template-card summary span:first-child{min-width:0}.mail-template-card summary strong,.mail-template-card summary small{display:block}.mail-template-card summary strong{font-size:14px}.mail-template-card summary small{margin-top:4px;color:#7f85a2;font-size:11px}.details-chevron{color:#7f85a2;transition:transform .2s ease}.mail-template-card[open] .details-chevron{transform:rotate(180deg)}
.mail-template-fields{display:grid;gap:14px;padding:0 20px 20px;border-top:1px solid rgba(48,42,35,.055)}.mail-template-fields>label:first-child{padding-top:18px}
.mail-template-fields textarea,.broadcast-mail-grid textarea{resize:vertical;min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px!important;line-height:1.65}
.mail-preview-wrap{display:grid;gap:8px;min-width:0}.mail-preview-wrap>strong{color:#717792;font-size:11px;font-weight:600}.mail-html-preview{min-height:110px;max-height:260px;padding:16px;overflow:auto;border:1px solid #e7e8ed;border-radius:14px;background:#ffffff;color:#1e1f20;font-size:13px;line-height:1.65}.mail-html-preview:empty:before{content:'HTML 预览会显示在这里';color:#7f85a2}
.mail-variable-box{padding:16px 18px;border:1px solid #e7e8ed;border-radius:17px;background:linear-gradient(135deg,#f7f7f7,#ffffff)}.mail-variable-box strong{font-size:12px}.mail-variable-box p{margin:7px 0 0;color:#717792;font-size:11px;line-height:1.75}.mail-variable-box code{padding:2px 5px;border-radius:6px;background:#f1f4fc;color:#717792}
.mail-save-bar{position:sticky;z-index:12;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border:1px solid rgba(48,42,35,.08);border-radius:18px;background:rgba(255,253,248,.9);box-shadow:0 14px 40px rgba(48,42,35,.1);backdrop-filter:saturate(170%) blur(18px)}.mail-save-bar strong,.mail-save-bar small{display:block}.mail-save-bar small{margin-top:4px;color:#7f85a2;font-size:10px}
.mail-broadcast-card{margin-top:20px;overflow:hidden;border-radius:22px!important}.broadcast-mail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.broadcast-mail-grid>label:first-child,.broadcast-mail-grid>label:nth-child(3),.broadcast-mail-grid>.mail-preview-wrap,.broadcast-mail-grid>.message,.broadcast-mail-grid>.modal-actions{grid-column:1/-1}
.region-row:first-child .region-rank{background:#f1f4fc;color:#7f85a2;font-weight:700}.region-row:first-child .region-row-top strong:after{content:'客户最多';display:inline-flex;margin-left:7px;padding:2px 6px;border-radius:999px;background:#f1f4fc;color:#7f85a2;font-size:9px;font-weight:600;vertical-align:middle}
@media(max-width:1080px){.mail-settings-grid,.mail-template-grid{grid-template-columns:1fr}}
@media(max-width:860px){.sidebar{width:min(304px,calc(100vw - 28px))!important;padding-top:max(14px,env(safe-area-inset-top))!important}.sidebar-brand{position:relative;flex:0 0 auto}.sidebar-toggle{display:flex!important;position:absolute!important;right:12px!important;top:max(17px,env(safe-area-inset-top))!important}.sidebar-nav,.sidebar-scroll{padding-bottom:20px!important}.mail-save-bar{position:static;align-items:stretch;flex-direction:column}.mail-save-bar .button{width:100%}.broadcast-mail-grid{grid-template-columns:1fr}.broadcast-mail-grid>*{grid-column:1!important}.mail-template-fields{padding-inline:16px}.mail-template-card summary{padding-inline:16px}.email-suggestions{max-height:min(240px,42vh)!important}}


/* 小韭菜对接 v1.0.55 · Apple / iOS 纯白交互收口层 */
:root{
  color-scheme:light;
  --v144-blue:#7f85a2;
  --v144-blue-hover:#717792;
  --v144-blue-soft:#f7f7f7;
  --v144-green:#18a66a;
  --v144-orange:#d97904;
  --v144-red:#d92d45;
  --v144-ink:#1e1f20;
  --v144-muted:#7f85a2;
  --v144-line:rgba(48,42,35,.085);
  --v144-line-strong:rgba(48,42,35,.14);
  --v144-panel:#ffffff;
  --v144-soft:#f7f7f7;
  --v144-shadow:0 1px 2px rgba(48,42,35,.025),0 10px 28px rgba(48,42,35,.055);
  --v144-shadow-hover:0 2px 5px rgba(48,42,35,.035),0 18px 44px rgba(48,42,35,.085);
  --v144-radius:22px;
  --v144-radius-small:14px;
}
html,body{background:#ffffff!important;color:var(--v144-ink)!important}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Helvetica Neue",Arial,sans-serif!important;letter-spacing:-.005em}
body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 6%,rgba(150,98,63,.035),transparent 24rem),radial-gradient(circle at 92% 18%,rgba(150,98,63,.025),transparent 27rem),#ffffff}
.shell,.app-layout,.workspace,.content-view,.admin-content{background:transparent!important}
::selection{background:rgba(150,98,63,.16);color:#4a4e60}

/* 控件：固定 16px 避免 iPhone 聚焦输入框时自动放大 */
input:not([type=checkbox]):not([type=radio]),select,textarea{
  min-height:46px!important;padding:11px 14px!important;border:1px solid var(--v144-line-strong)!important;border-radius:13px!important;background:#ffffff!important;color:var(--v144-ink)!important;font-size:16px!important;line-height:1.35!important;box-shadow:0 1px 2px rgba(48,42,35,.025)!important;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
}
textarea{line-height:1.65!important}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:rgba(150,98,63,.34)!important}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:rgba(150,98,63,.68)!important;box-shadow:0 0 0 4px rgba(150,98,63,.105)!important;outline:0!important}
input[type=checkbox],input[type=radio]{accent-color:var(--v144-blue)}
label{color:#1e1f20!important;font-weight:600!important}
label small,.field-hint,.muted{color:var(--v144-muted)!important}

.button,.action-button,.icon-button,.close-button,.menu-button,.sidebar-toggle{
  border-radius:12px!important;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease!important;
}
.button:hover:not(:disabled),.action-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.close-button:hover:not(:disabled){transform:translateY(-1px)}
.button:active:not(:disabled),.action-button:active:not(:disabled),.icon-button:active:not(:disabled),.close-button:active:not(:disabled){transform:scale(.975)}
.button.primary{background:var(--v144-blue)!important;color:#ffffff!important;border-color:var(--v144-blue)!important;box-shadow:0 8px 20px rgba(150,98,63,.19)!important}
.button.primary:hover:not(:disabled){background:var(--v144-blue-hover)!important;box-shadow:0 12px 28px rgba(150,98,63,.24)!important}
.button.secondary,.button.ghost,.action-button,.icon-button,.close-button{background:#ffffff!important;border-color:var(--v144-line)!important;color:#1e1f20!important;box-shadow:0 2px 8px rgba(48,42,35,.035)!important}
.button.secondary:hover:not(:disabled),.button.ghost:hover:not(:disabled),.action-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.close-button:hover:not(:disabled){background:#f7f7f7!important;border-color:rgba(150,98,63,.25)!important;color:var(--v144-blue)!important}
.button:disabled,.action-button:disabled{opacity:.48!important;cursor:not-allowed!important;transform:none!important}
.button[data-busy="true"],button.is-busy{position:relative;cursor:wait!important;opacity:.78!important}
.button[data-busy="true"]:before,button.is-busy:before{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:v144spin .65s linear infinite}
@keyframes v144spin{to{transform:rotate(360deg)}}

/* 侧栏和顶部栏 */
.app-layout{min-height:100dvh!important}
.sidebar{
  top:0!important;bottom:0!important;height:100vh!important;height:100dvh!important;padding:18px 14px max(18px,env(safe-area-inset-bottom))!important;background:rgba(255,253,248,.92)!important;border-right:1px solid var(--v144-line)!important;box-shadow:8px 0 30px rgba(48,42,35,.025)!important;backdrop-filter:saturate(170%) blur(24px)!important;-webkit-backdrop-filter:saturate(170%) blur(24px)!important;
}
.sidebar-brand{min-height:58px;padding:5px 8px!important;border:0!important;background:transparent!important}
.brand-mark{display:grid!important;place-items:center!important;width:42px!important;height:42px!important;min-width:42px!important;border-radius:14px!important;background:linear-gradient(145deg,#7f85a2,#717792)!important;color:#ffffff!important;border:0!important;box-shadow:0 9px 22px rgba(150,98,63,.2)!important;overflow:hidden!important}
.brand-mark.has-site-logo{background:#ffffff!important;border:1px solid var(--v144-line)!important;padding:0!important}
.brand-mark.has-site-logo img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:inherit!important}
.brand-copy strong{color:var(--v144-ink)!important;font-weight:680!important;letter-spacing:-.02em}.brand-copy span{color:#7f85a2!important;letter-spacing:.08em!important}
.sidebar-account{margin:10px 0 14px!important;padding:10px!important;border:1px solid transparent!important;border-radius:17px!important;background:#f7f7f7!important;box-shadow:none!important}
.sidebar-account:hover{background:#f7f7f7!important;border-color:rgba(150,98,63,.11)!important;box-shadow:none!important}
.sidebar-account .qq-avatar,.sidebar-account .avatar,.account-trigger .qq-avatar,.account-popover .qq-avatar,.avatar,.qq-avatar{object-fit:cover!important;object-position:center!important;border-radius:50%!important;overflow:hidden!important;flex:none!important;aspect-ratio:1/1!important}
.sidebar-account strong,.account-trigger strong{color:var(--v144-ink)!important}
.sidebar-nav{gap:4px!important;padding:2px 0 18px!important;scrollbar-width:thin;scrollbar-color:#e7e8ed transparent}
.nav-label{margin:10px 12px 5px!important;color:#7f85a2!important;font-size:10px!important;font-weight:700!important;letter-spacing:.09em!important}
.nav-item{min-height:43px!important;padding:9px 11px!important;border-radius:13px!important;color:#4a4e60!important;font-weight:580!important;transition:background .18s ease,color .18s ease,transform .18s ease!important}
.nav-item:hover{background:#f7f7f7!important;color:#1e1f20!important;transform:translateX(1px)}
.nav-item.active{background:var(--v144-blue-soft)!important;color:#717792!important;box-shadow:inset 0 0 0 1px rgba(150,98,63,.075)!important}
.nav-icon{color:currentColor!important}
.topbar{height:76px!important;padding:14px clamp(18px,3vw,38px)!important;background:rgba(255,253,248,.84)!important;border-bottom:1px solid rgba(48,42,35,.065)!important;box-shadow:none!important;backdrop-filter:saturate(180%) blur(22px)!important;-webkit-backdrop-filter:saturate(180%) blur(22px)!important}
.account-trigger{min-height:46px!important;padding:6px 8px 6px 7px!important;border:1px solid var(--v144-line)!important;border-radius:16px!important;background:#ffffff!important;box-shadow:0 4px 14px rgba(48,42,35,.045)!important}
.account-popover{border:1px solid var(--v144-line)!important;border-radius:18px!important;background:rgba(255,253,248,.96)!important;box-shadow:0 24px 68px rgba(48,42,35,.16)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;overflow:hidden!important}
.account-menu-item{border-radius:12px!important}

/* 内容容器与卡片 */
.content-view,.admin-content{width:min(100%,1480px)!important;margin-inline:auto!important;padding:28px clamp(18px,3vw,42px) 56px!important}
.page-intro,.mapping-head,.admin-page-head{margin-bottom:18px!important}
.page-intro h1,.mapping-head h1,.admin-page-head h1{color:var(--v144-ink)!important;font-weight:720!important;letter-spacing:-.04em!important}
.page-intro p,.mapping-head p,.admin-page-head p{color:var(--v144-muted)!important}
.eyebrow{color:var(--v144-blue)!important;font-size:10px!important;font-weight:720!important;letter-spacing:.085em!important}
.table-card,.stat-card,.mapping-card,.subscription-card,.commerce-section,.settings-card,.source-panel,.source-item,.quick-action,.setup-status,.site-preview-card,.mail-template-card,.mail-rule-card,.mail-broadcast-card{
  border:1px solid var(--v144-line)!important;border-radius:var(--v144-radius)!important;background:#ffffff!important;box-shadow:var(--v144-shadow)!important;
}
.table-card,.mapping-card,.source-item,.quick-action,.plan-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}
.table-card:hover,.mapping-card:hover,.source-item:hover,.quick-action:hover,.plan-card:hover{border-color:rgba(150,98,63,.13)!important;box-shadow:var(--v144-shadow-hover)!important}
.table-head{border-bottom:1px solid rgba(48,42,35,.055)!important}
.message{border-radius:13px!important}
.message.success{color:#087a4d!important;background:#f1f4fc!important;border-color:#ccefdc!important}
.message:not(:empty):not(.success){padding:11px 13px!important;background:#f1f4fc!important;border:1px solid #fee2bd!important;color:#9a5200!important}
.status-pill,.badge{border-radius:999px!important;font-weight:650!important}
.empty-state{border:1px dashed #e7e8ed!important;border-radius:18px!important;background:#ffffff!important}

/* 首页连接检测：三块横向紧凑显示，检测结果紧贴数据库项目 */
.connection-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.connection-stats .stat-card{min-height:112px!important;padding:18px 20px!important;overflow:hidden!important}
.connection-stats .stat-card:nth-child(1){background:linear-gradient(145deg,#f7f7f7,#ffffff 70%)!important;border-color:#e7e8ed!important}
.connection-stats .stat-card:nth-child(2){background:linear-gradient(145deg,#f1f4fc,#ffffff 70%)!important;border-color:#e7e8ed!important}
.connection-stats .stat-card:nth-child(3){background:linear-gradient(145deg,#f1f4fc,#ffffff 70%)!important;border-color:#f9e4c9!important}
.setup-status{margin:0 0 14px!important;padding:13px 16px!important;box-shadow:none!important;background:#ffffff!important;border-radius:16px!important}
.setup-status:empty{display:none!important}
.connection-list{gap:12px!important}
.connection-item{border-radius:18px!important}

/* 分类映射自定义选择器：菜单挂在 body，避免被卡片裁切 */
.native-picker-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.mapping-picker-shell{position:relative!important;min-width:0!important}
.mapping-picker-trigger{width:100%!important;min-height:50px!important;padding:11px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border:1px solid rgba(48,42,35,.14)!important;border-radius:15px!important;background:#ffffff!important;color:#1e1f20!important;font-size:15px!important;font-weight:620!important;text-align:left!important;box-shadow:0 3px 10px rgba(48,42,35,.035)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important}
.mapping-picker-trigger:after{content:"";width:8px;height:8px;border-right:2px solid #7f85a2;border-bottom:2px solid #7f85a2;transform:rotate(45deg) translateY(-2px);transition:transform .18s ease!important}
.mapping-picker-trigger:hover,.mapping-picker-trigger.open{border-color:rgba(150,98,63,.5)!important;box-shadow:0 0 0 4px rgba(150,98,63,.08)!important}
.mapping-picker-trigger.open:after{transform:rotate(225deg) translate(-2px,-2px)}
.mapping-picker-menu{position:fixed!important;z-index:10020!important;min-width:240px!important;max-width:min(520px,calc(100vw - 24px))!important;max-height:min(360px,52vh)!important;padding:7px!important;overflow:auto!important;border:1px solid rgba(48,42,35,.1)!important;border-radius:17px!important;background:rgba(255,253,248,.98)!important;box-shadow:0 24px 70px rgba(48,42,35,.18)!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
.mapping-picker-menu[hidden]{display:none!important}
.mapping-picker-option{width:100%!important;min-height:43px!important;padding:9px 11px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border:0!important;border-radius:11px!important;background:transparent!important;color:#1e1f20!important;text-align:left!important;font-size:14px!important;transition:background .14s ease,color .14s ease!important}
.mapping-picker-option:hover,.mapping-picker-option.keyboard-active{background:#f7f7f7!important;color:#717792!important}
.mapping-picker-option.selected{background:#f1f4fc!important;color:#717792!important;font-weight:650!important}
.mapping-picker-option b{color:var(--v144-blue)!important}
.mapping-grid{gap:14px!important}.mapping-card{padding:19px!important}.mapping-card.is-dirty{border-color:rgba(150,98,63,.28)!important;box-shadow:0 12px 32px rgba(150,98,63,.08)!important}
.mapping-save-bar{border:1px solid var(--v144-line)!important;border-radius:18px!important;background:rgba(255,253,248,.94)!important;box-shadow:0 18px 46px rgba(48,42,35,.11)!important;backdrop-filter:blur(20px)!important}

/* 已对接内容：分类与真实登录节点名称清晰分层 */
.synced-content,.admin-synced-content{display:grid!important;gap:13px!important}
.synced-group,.admin-synced-group{overflow:hidden!important;border:1px solid var(--v144-line)!important;border-radius:18px!important;background:#ffffff!important;box-shadow:0 8px 24px rgba(48,42,35,.045)!important}
.synced-category,.admin-synced-category{padding:15px 17px!important;background:#f7f7f7!important;border-bottom:1px solid rgba(150,98,63,.08)!important}
.synced-nodes,.admin-synced-nodes{display:grid!important;gap:8px!important;padding:11px!important}
.synced-node,.admin-synced-node{min-height:54px!important;padding:10px 12px!important;border:1px solid rgba(48,42,35,.07)!important;border-radius:13px!important;background:#ffffff!important}
.synced-node strong,.admin-synced-node strong{display:block!important;color:#1e1f20!important;font-weight:630!important}
.synced-node small,.admin-synced-node small{display:block!important;margin-top:2px!important;color:var(--v144-muted)!important}
.sync-selection-bar{border-radius:16px!important;background:#f7f7f7!important;border-color:var(--v144-line)!important}
.admin-synced-dialog .admin-synced-card{width:min(760px,calc(100vw - 28px))!important;max-height:min(88vh,900px)!important}
.admin-synced-content{min-height:120px!important;max-height:52vh!important;overflow:auto!important;padding-right:3px!important}
.admin-sync-actions{position:sticky!important;bottom:0!important;z-index:2!important;background:rgba(255,253,248,.96)!important;backdrop-filter:blur(18px)!important}

/* 邮件候选：独立 portal，可触摸滚动，不盖住输入框 */
.email-combobox{position:relative!important}
.email-suggestions-portal{position:fixed!important;z-index:12000!important;display:block!important;max-height:min(286px,42vh)!important;padding:6px!important;overflow-y:auto!important;overflow-x:hidden!important;border:1px solid rgba(48,42,35,.1)!important;border-radius:15px!important;background:rgba(255,253,248,.99)!important;box-shadow:0 22px 60px rgba(48,42,35,.18)!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:thin!important}
.email-suggestions-portal[hidden]{display:none!important}
.email-suggestion-option,.email-suggestions-portal [role=option]{width:100%!important;min-height:45px!important;padding:10px 12px!important;display:flex!important;align-items:center!important;border:0!important;border-radius:10px!important;background:#ffffff!important;color:#1e1f20!important;font-size:15px!important;text-align:left!important;touch-action:manipulation!important}
.email-suggestion-option:hover,.email-suggestion-option.active,.email-suggestions-portal [role=option]:hover{background:#f7f7f7!important;color:#717792!important}

/* 群发客户选择 */
.broadcast-customer-picker{display:grid!important;gap:10px!important;padding:14px!important;border:1px solid var(--v144-line)!important;border-radius:17px!important;background:#f7f7f7!important}
.broadcast-customer-tools{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap!important}
.broadcast-customer-tools input{flex:1 1 230px!important}
.broadcast-user-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;max-height:310px!important;overflow:auto!important;padding:3px!important;overscroll-behavior:contain!important}
.broadcast-user-option{min-height:62px!important;padding:9px 11px!important;display:grid!important;grid-template-columns:auto 36px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;border:1px solid rgba(48,42,35,.075)!important;border-radius:14px!important;background:#ffffff!important;cursor:pointer!important;transition:border-color .16s ease,background .16s ease,transform .16s ease!important}
.broadcast-user-option:hover{border-color:rgba(150,98,63,.22)!important;background:#f7f7f7!important;transform:translateY(-1px)}
.broadcast-user-avatar{width:36px!important;height:36px!important;border-radius:50%!important;display:grid!important;place-items:center!important;overflow:hidden!important;background:#f1f4fc!important;color:#7f85a2!important;font-weight:700!important}
.broadcast-user-avatar img{width:100%!important;height:100%!important;object-fit:cover!important}
.broadcast-user-option span:last-child{min-width:0!important}.broadcast-user-option strong,.broadcast-user-option small{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.broadcast-user-option small{color:var(--v144-muted)!important;font-weight:450!important}
.broadcast-empty{grid-column:1/-1!important;padding:22px!important;text-align:center!important;color:var(--v144-muted)!important}

/* 网站信息 */
.site-settings-grid{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)!important;gap:18px!important;align-items:start!important}
.site-preview-card{position:sticky!important;top:96px!important;padding:22px!important;overflow:hidden!important}
.site-preview-card:before{content:"";position:absolute;inset:0 0 auto;height:110px;background:linear-gradient(135deg,#f7f7f7,#f7f7f7);z-index:0}.site-preview-card>*{position:relative;z-index:1}
.site-preview-brand{display:flex!important;align-items:center!important;gap:12px!important}.site-preview-brand .brand-mark{width:52px!important;height:52px!important}
.site-preview-copy{margin-top:42px!important}.site-preview-copy h3{margin:0 0 8px!important;font-size:22px!important}.site-preview-copy p{color:var(--v144-muted)!important;line-height:1.75!important}

/* 来源数据库发布：只展示分类和登录节点，不再展示结构诊断框 */
#publishModal .modal-card{width:min(780px,calc(100vw - 28px))!important}
.publish-preview{min-height:120px!important}.selection-panel-clean{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.selection-head{margin-bottom:14px!important}.selection-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.selection-card{min-width:0!important;padding:12px!important;border:1px solid var(--v144-line)!important;border-radius:17px!important;background:#f7f7f7!important}
.selection-card legend{padding:0 7px!important;color:#4a4e60!important;font-weight:650!important}
.selection-items{display:grid!important;gap:7px!important;max-height:340px!important;overflow:auto!important;overscroll-behavior:contain!important}
.selection-item{min-height:54px!important;padding:10px 11px!important;display:flex!important;align-items:center!important;gap:10px!important;border:1px solid rgba(48,42,35,.07)!important;border-radius:13px!important;background:#ffffff!important;cursor:pointer!important}
.selection-item:hover{border-color:rgba(150,98,63,.22)!important;background:#f7f7f7!important}

/* 弹窗、确认框、公告：真正居中，背景透明可见 */
dialog{padding:0!important;border:0!important;background:transparent!important;color:var(--v144-ink)!important;max-width:none!important;max-height:none!important;overflow:visible!important}
dialog[open]{display:grid!important;place-items:center!important;position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;margin:0!important;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
dialog::backdrop{background:rgba(247,243,235,.62)!important;backdrop-filter:blur(5px) saturate(115%)!important;-webkit-backdrop-filter:blur(5px) saturate(115%)!important}
.modal-card{width:min(680px,calc(100vw - 24px))!important;max-height:min(90vh,920px)!important;max-height:min(90dvh,920px)!important;margin:auto!important;padding:24px!important;overflow:auto!important;border:1px solid rgba(48,42,35,.085)!important;border-radius:24px!important;background:rgba(255,253,248,.985)!important;box-shadow:0 34px 100px rgba(48,42,35,.2)!important;overscroll-behavior:contain!important}
.modal-head{position:relative!important;gap:14px!important}.modal-head h2{color:var(--v144-ink)!important;letter-spacing:-.035em!important}.modal-head p{color:var(--v144-muted)!important}.modal-actions{padding-top:13px!important;border-top:1px solid rgba(48,42,35,.055)!important}
.confirm-dialog .modal-card,.confirm-card{width:min(460px,calc(100vw - 28px))!important;text-align:left!important}
.announcement-dialog .modal-card,.announcement-card{width:min(680px,calc(100vw - 28px))!important;padding:28px!important}
.announcement-body{max-height:min(52vh,520px)!important;overflow:auto!important;color:#1e1f20!important;line-height:1.75!important}
.toast-region{position:fixed!important;z-index:13000!important;left:50%!important;right:auto!important;top:20px!important;bottom:auto!important;transform:translateX(-50%)!important;display:grid!important;gap:9px!important;width:min(440px,calc(100vw - 28px))!important;pointer-events:none!important}
.toast{border:1px solid var(--v144-line)!important;border-radius:15px!important;background:rgba(255,253,248,.97)!important;color:#1e1f20!important;box-shadow:0 18px 50px rgba(48,42,35,.15)!important;backdrop-filter:blur(18px)!important}

/* 数据大屏 */
.screen-shell{background:#ffffff!important}.screen-hero,.screen-card,.screen-metric,.screen-insight{border:1px solid var(--v144-line)!important;border-radius:22px!important;background:#ffffff!important;box-shadow:var(--v144-shadow)!important}
.screen-map-card{overflow:hidden!important}.screen-map{border-radius:18px!important;background:linear-gradient(155deg,#f7f7f7,#ffffff)!important}
.screen-diagnostics{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:start!important;gap:11px!important;margin-top:12px!important;padding:13px 14px!important;border:1px solid #e7e8ed!important;border-radius:15px!important;background:#f7f7f7!important;color:#4a4e60!important}
.screen-diagnostics-icon{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border-radius:11px!important;background:#7f85a2!important;color:#ffffff!important;font-weight:700!important}
.screen-diagnostics strong,.screen-diagnostics span{display:block!important}.screen-diagnostics span{margin-top:3px!important;color:#7f85a2!important;font-size:12px!important;line-height:1.55!important}
.screen-diagnostics.is-success{border-color:#d5f0e2!important;background:#f7f7f7!important}.screen-diagnostics.is-success .screen-diagnostics-icon{background:#18a66a!important}
.region-list{gap:9px!important}.region-row{padding:12px!important;border:1px solid rgba(48,42,35,.065)!important;border-radius:14px!important;background:#ffffff!important}

/* 细节 */
.inline-loading{border-radius:14px!important;background:#f7f7f7!important;color:#717792!important}
.release-footer{color:#7f85a2!important}.danger-button{border-radius:12px!important}

@media(max-width:1080px){
  .site-settings-grid{grid-template-columns:1fr!important}.site-preview-card{position:static!important}
  .broadcast-user-list{grid-template-columns:1fr!important}
}
@media(max-width:860px){
  .workspace{min-width:0!important;width:100%!important}
  .topbar{height:68px!important;padding:10px 14px!important}
  .content-view,.admin-content{padding:20px 13px 42px!important}
  .sidebar{width:min(310px,calc(100vw - 24px))!important;max-width:none!important;padding:14px 12px max(14px,env(safe-area-inset-bottom))!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
  .sidebar-brand{padding-right:48px!important}
  .sidebar-toggle{display:grid!important;place-items:center!important;position:absolute!important;z-index:1600!important;top:max(17px,env(safe-area-inset-top))!important;right:12px!important;width:38px!important;height:38px!important;border:1px solid var(--v144-line)!important;border-radius:12px!important;background:#f7f7f7!important;color:#7f85a2!important;box-shadow:none!important}
  .sidebar-nav{min-height:0!important;flex:1 1 auto!important;overflow-y:auto!important;padding-bottom:22px!important;-webkit-overflow-scrolling:touch!important}
  .sidebar-foot{flex:0 0 auto!important;margin-top:0!important;padding-bottom:max(6px,env(safe-area-inset-bottom))!important;background:#ffffff!important}
  .sidebar-is-open{overflow:hidden!important}
  .connection-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  .connection-stats .stat-card{min-height:91px!important;padding:13px 10px!important;border-radius:17px!important}
  .connection-stats .stat-label{font-size:11px!important;white-space:nowrap!important}.connection-stats .stat-card strong{font-size:25px!important}.connection-stats .stat-card small{display:none!important}
  .mapping-switcher,.synced-switcher{border-radius:18px!important}
  .mapping-grid{grid-template-columns:1fr!important}
  .mapping-picker-menu{max-height:min(300px,46dvh)!important}
  .selection-grid{grid-template-columns:1fr!important}.selection-items{max-height:240px!important}
  .modal-card{width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;padding:19px!important;border-radius:21px!important}
  .modal-head{padding-right:42px!important}.modal-head .close-button{position:absolute!important;right:0!important;top:0!important}
  .modal-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.modal-actions .button{width:100%!important;margin:0!important}.modal-actions .button:last-child:nth-child(3){grid-column:1/-1!important}
  .admin-synced-content{max-height:47dvh!important}
  .admin-sync-actions{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important}.admin-sync-actions .button{grid-column:1/-1!important;width:100%!important}
  .email-suggestions-portal{max-height:min(250px,38dvh)!important}
  .broadcast-customer-tools .button{flex:1 1 auto!important}
  .screen-diagnostics{font-size:12px!important}
}
@media(max-width:520px){
  .account-trigger .account-trigger-copy{display:none!important}
  .connection-stats .stat-card{padding:12px 9px!important}.connection-stats .stat-label{font-size:10px!important}.connection-stats .stat-card strong{font-size:23px!important}
  .form-grid{grid-template-columns:1fr!important}.form-grid .span-2{grid-column:1!important}
  .mapping-picker-trigger{font-size:14px!important}
  .broadcast-user-option{grid-template-columns:auto 34px minmax(0,1fr)!important}
  .site-preview-card{padding:18px!important}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}


/* v1.0.55 · 完整中国省级地图与中文省份排行 */
.geo-map{background:linear-gradient(145deg,#ffffff 0%,#f7f7f7 54%,#ffffff 100%)!important}
.geo-map image{opacity:.96!important;filter:drop-shadow(0 16px 28px rgba(121,84,57,.08))}
.province-label{cursor:pointer;outline:none;transition:opacity .2s ease,filter .2s ease}
.province-label text{fill:#7f85a2;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif;font-size:10.5px;font-weight:620;letter-spacing:.02em;paint-order:stroke;stroke:rgba(255,253,248,.94);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.province-label-hit{fill:rgba(255,253,248,.001);stroke:transparent;stroke-width:1}
.province-label:hover text,.province-label:focus text{fill:#717792;font-weight:720}
.province-label:focus .province-label-hit{fill:rgba(150,98,63,.1);stroke:rgba(150,98,63,.28)}
.province-label.is-active text{fill:#717792;font-weight:760;stroke-width:3.5px}
.map-point{animation:provincePulse 2.8s ease-in-out infinite}
.map-empty{inset:auto 14px 14px 14px!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:4px!important;padding:10px 12px!important;border:1px solid rgba(150,98,63,.1)!important;border-radius:14px!important;background:rgba(255,253,248,.88)!important;box-shadow:0 8px 24px rgba(48,42,35,.06)!important;backdrop-filter:blur(16px);text-align:left!important}
.map-empty[hidden]{display:none!important}.map-empty-icon{display:none!important}.map-empty strong{font-size:11px!important}.map-empty p{max-width:none!important;margin:0!important;font-size:9px!important;line-height:1.45!important}
@keyframes provincePulse{0%,100%{filter:drop-shadow(0 4px 7px rgba(150,98,63,.2))}50%{filter:drop-shadow(0 5px 11px rgba(150,98,63,.36))}}
@media(max-width:640px){.geo-map{aspect-ratio:900/620!important}.province-label text{font-size:11.5px}.map-panel{overflow:hidden}.map-empty{left:8px!important;right:8px!important;bottom:8px!important}.map-empty p{display:none}}

/* v1.0.55 · 省级人数热力板块 */
.province-map-fallback{pointer-events:none;transition:opacity .24s ease!important}
.province-map-fallback.is-hidden{opacity:0!important}
.province-shapes{isolation:isolate}
.province-shape{
  cursor:pointer;outline:none;stroke:#ffffff;stroke-width:1.25;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;transition:fill .22s ease,stroke .22s ease,filter .22s ease,opacity .22s ease;
}
.province-shape.province-level-0{fill:#f1f4fc}
.province-shape.province-level-1{fill:#e7e8ed}
.province-shape.province-level-2{fill:#d8c9b5}
.province-shape.province-level-3{fill:#9398ae}
.province-shape.province-level-4{fill:#7f85a2}
.province-shape:hover,.province-shape:focus-visible{stroke:#717792;stroke-width:2;filter:brightness(.99) drop-shadow(0 5px 8px rgba(121,84,57,.18));position:relative;z-index:3}
.province-shape.is-selected{fill:#717792!important;stroke:#ffffff!important;stroke-width:2.4!important;filter:drop-shadow(0 7px 11px rgba(89,69,55,.36));position:relative;z-index:5}
.province-label.is-selected text{fill:#ffffff!important;stroke:#717792!important;stroke-width:5px!important;font-weight:800!important}
.map-point.province-level-1{fill:#9398ae}.map-point.province-level-2{fill:#7f85a2}.map-point.province-level-3{fill:#7f85a2}.map-point.province-level-4{fill:#4a4e60}
.map-point.is-selected{fill:#ffffff!important;stroke:#717792!important;stroke-width:3!important;filter:drop-shadow(0 5px 9px rgba(89,69,55,.42))}
.province-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding:10px 12px;border:1px solid #e7e8ed;border-radius:14px;background:#ffffff;color:#717792;font-size:11px}
.province-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.province-legend i{width:13px;height:13px;border:1px solid rgba(121,84,57,.1);border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,253,248,.28)}
.province-legend i.province-level-0{background:#f1f4fc}.province-legend i.province-level-1{background:#e7e8ed}.province-legend i.province-level-2{background:#d8c9b5}.province-legend i.province-level-3{background:#9398ae}.province-legend i.province-level-4{background:#7f85a2}
.region-row[role="button"]{cursor:pointer;outline:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.region-row[role="button"]:hover,.region-row[role="button"]:focus-visible{transform:translateY(-1px);background:#f7f7f7;box-shadow:0 8px 18px rgba(89,69,55,.08)}
.region-row.is-selected{background:#f1f4fc!important;box-shadow:inset 3px 0 0 #7f85a2,0 8px 20px rgba(150,98,63,.1)}
.region-row.province-level-1 .region-rank{background:#e7e8ed;color:#717792}.region-row.province-level-2 .region-rank{background:#d8c9b5;color:#4a4e60}.region-row.province-level-3 .region-rank{background:#9398ae;color:#ffffff}.region-row.province-level-4 .region-rank{background:#7f85a2;color:#ffffff}
@media(max-width:640px){.province-legend{gap:7px 10px;padding:9px 10px}.province-legend span{font-size:10px}.province-shape{stroke-width:1.5}.province-shape.is-selected{stroke-width:3!important}}


/* v1.0.55 · 省份悬停即亮、移出即灭 */
.province-shape.is-selected{
  fill:#717792!important;
  stroke:#ffffff!important;
  stroke-width:2.4!important;
  filter:brightness(1.04) drop-shadow(0 8px 14px rgba(89,69,55,.34))!important;
}
.province-label.is-selected,.map-point.is-selected,.region-row.is-selected{transition-duration:.16s!important}
@media(hover:hover){
  .province-shape,.province-label,.map-point,.region-row[role="button"]{transition-timing-function:ease-out!important}
}


/* v1.0.55 · 已发布内容点击展开分类与接口 */
.published-catalog-card{display:block!important;padding:0!important;overflow:hidden;background:#ffffff}
.published-catalog-card[open]{border-color:rgba(150,98,63,.2)!important;box-shadow:0 18px 42px rgba(89,69,55,.1)!important}
.published-catalog-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;cursor:pointer;list-style:none;user-select:none;transition:background .2s ease}
.published-catalog-summary::-webkit-details-marker{display:none}
.published-catalog-summary:hover{background:#ffffff}
.published-catalog-summary:focus-visible{outline:3px solid rgba(150,98,63,.18);outline-offset:-3px}
.published-catalog-copy h4{margin:0 0 5px}.published-catalog-copy p,.published-catalog-copy small{display:block;margin:0;color:#7f85a2}.published-catalog-copy p{font-size:12px}.published-catalog-copy small{margin-top:4px;font-size:11px}
.published-toggle{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:9px 12px;border:1px solid #e7e8ed;border-radius:12px;background:#ffffff;color:#7f85a2;font-size:12px;font-weight:700;box-shadow:0 4px 12px rgba(89,69,55,.06)}
.published-toggle i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}
.published-catalog-card[open] .published-toggle-label{font-size:0}.published-catalog-card[open] .published-toggle-label::after{content:'收起内容';font-size:12px}
.published-catalog-card[open] .published-toggle i{transform:rotate(225deg) translate(-2px,-2px)}
.published-catalog-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 22px 22px;border-top:1px solid #f1f4fc;background:linear-gradient(180deg,#ffffff 0,#ffffff 80px)}
.published-category{min-width:0;margin-top:16px;padding:16px;border:1px solid #e7e8ed;border-radius:16px;background:rgba(255,253,248,.96);box-shadow:0 8px 22px rgba(89,69,55,.055)}
.published-category-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.published-category-head div{min-width:0}.published-category-head span,.published-category-head strong{display:block}.published-category-head span{margin-bottom:3px;color:#7f85a2;font-size:10px;font-weight:700;letter-spacing:.08em}.published-category-head strong{overflow:hidden;color:#1e1f20;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.published-category-head small{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#f1f4fc;color:#717792;font-size:10px;font-weight:700}
.published-node-list{display:flex;flex-wrap:wrap;gap:8px}.published-node{display:inline-flex;align-items:center;max-width:100%;gap:7px;padding:8px 10px;border:1px solid #e7e8ed;border-radius:11px;background:#ffffff;color:#4a4e60;font-size:11px;box-shadow:0 3px 9px rgba(89,69,55,.04)}.published-node i{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#34c759;box-shadow:0 0 0 3px rgba(52,199,89,.12)}.published-node span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.published-node small{flex:0 0 auto;color:#7f85a2}.published-empty{grid-column:1/-1;margin:0;padding:12px;border-radius:12px;background:#f7f7f7;color:#7f85a2;font-size:11px;text-align:center}
@media(max-width:760px){.published-catalog-summary{align-items:flex-start;padding:17px}.published-toggle{padding:8px 10px}.published-toggle-label{display:none}.published-catalog-details{grid-template-columns:1fr;padding:0 14px 14px}.published-category{margin-top:12px;padding:14px}.published-node{width:100%}.published-node span{flex:1}}

/* v1.0.55：邮件模板独立单列，群发页面独立入口 */
.mail-admin-page .mail-template-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
.broadcast-admin-page .mail-broadcast-card{margin-top:0!important}
@media(max-width:860px){.mail-admin-page .mail-template-card summary{min-height:64px}.mail-admin-page .mail-template-fields{padding-left:16px;padding-right:16px}}


/* v1.0.55 · 高密度控制台式 Apple UI */
:root{--jc-bg:#f7f7f7;--jc-card:#ffffff;--jc-line:#e7e8ed;--jc-text:#1e1f20;--jc-muted:#7f85a2;--jc-primary:#7f85a2;--jc-purple:#7f85a2;--jc-green:#16c995;--jc-blue:#7f85a2;--jc-pink:#ef5da8;--jc-amber:#f59e0b}
body{background:linear-gradient(180deg,#ffffff 0,#f1f4fc 45%,#f7f7f7 100%)!important;color:var(--jc-text)!important}
.sidebar{background:rgba(255,253,248,.94)!important;border-right:1px solid var(--jc-line)!important;box-shadow:12px 0 40px rgba(48,42,35,.035)!important}
.topbar{background:rgba(255,253,248,.88)!important;border-bottom:1px solid var(--jc-line)!important;box-shadow:0 10px 34px rgba(89,69,55,.035)!important}
.nav-item{border-radius:13px!important;color:#717792!important;margin:3px 8px!important}
.nav-item:hover{background:#f7f7f7!important;color:#7f85a2!important;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(135deg,#7f85a2,#7f85a2)!important;color:#ffffff!important;box-shadow:0 8px 20px rgba(150,98,63,.2)!important}
.card,.stat-card,.admin-panel,.panel,.mapping-card,.plan-card,.connection-card{border:1px solid var(--jc-line)!important;border-radius:18px!important;background:#ffffff!important;box-shadow:0 8px 30px rgba(89,69,55,.055)!important}
.card:hover,.stat-card:hover,.plan-card:hover,.connection-card:hover{transform:translateY(-2px);box-shadow:0 15px 38px rgba(89,69,55,.09)!important}
.button.primary,button.primary{background:linear-gradient(135deg,#7f85a2,#7f85a2)!important;box-shadow:0 8px 18px rgba(150,98,63,.2)!important}
.dashboard-hero-v151{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px;border-radius:22px;color:#ffffff;background:linear-gradient(112deg,#717792 0%,#9398ae 48%,#7f85a2 100%);box-shadow:0 20px 45px rgba(150,98,63,.22);margin-bottom:22px}
.dashboard-hero-v151:after{content:"";position:absolute;width:360px;height:360px;border:70px solid rgba(255,253,248,.07);border-radius:50%;right:-70px;top:-190px}
.dashboard-hero-v151 h1{color:#ffffff!important;margin:7px 0;font-size:clamp(24px,3vw,34px)}
.dashboard-hero-v151 p{color:rgba(255,253,248,.72)!important;margin:0}.hero-live{display:flex;align-items:center;gap:8px;font-weight:750;font-size:13px}.hero-live i{width:9px;height:9px;border-radius:50%;background:#70f0c0;box-shadow:0 0 0 6px rgba(112,240,192,.12)}
.hero-side{position:relative;z-index:2;min-width:190px;padding:15px 18px;border:1px solid rgba(255,253,248,.15);border-radius:16px;background:rgba(255,253,248,.1);backdrop-filter:blur(15px)}
.metric-color-grid .stat-card:nth-child(4n+1) .stat-icon{background:#f1f4fc;color:#7f85a2}.metric-color-grid .stat-card:nth-child(4n+2) .stat-icon{background:#e1fbf2;color:#16a97c}.metric-color-grid .stat-card:nth-child(4n+3) .stat-icon{background:#f1f4fc;color:#7f85a2}.metric-color-grid .stat-card:nth-child(4n+4) .stat-icon{background:#fff0d0;color:#e69800}
.onboarding-card{border:1px solid var(--jc-line);background:#ffffff;border-radius:18px;padding:20px 22px;box-shadow:0 8px 30px rgba(89,69,55,.055);margin-bottom:20px}.onboarding-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.onboarding-head h3{margin:0;font-size:17px}.onboarding-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.onboarding-step{position:relative;padding:16px;border-radius:15px;background:#f7f7f7;border:1px solid #f1f4fc;min-height:105px;transition:.2s ease}.onboarding-step:hover{background:#f7f7f7;border-color:#e7e8ed;transform:translateY(-2px)}.onboarding-step b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#7f85a2;color:#ffffff;margin-bottom:10px}.onboarding-step strong{display:block;font-size:14px}.onboarding-step small{display:block;color:var(--jc-muted);margin-top:4px}.onboarding-step.done{background:#f1f4fc;border-color:#c7f1df}.onboarding-step.done b{background:#16b882}
.redeem-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.redeem-card input{text-transform:uppercase;letter-spacing:.08em;font-weight:750}
.voucher-grid{display:grid;gap:10px}.voucher-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(110px,.8fr) 100px 110px 120px;gap:10px;align-items:center;padding:13px 15px;border:1px solid var(--jc-line);border-radius:14px;background:#ffffff}.voucher-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}
.relay-badge{display:inline-flex;align-items:center;gap:7px;color:#138b67;background:#f1f4fc;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:750}.relay-badge.off{color:#ad6b00;background:#fff6df}
@media(max-width:760px){.dashboard-hero-v151{padding:23px;align-items:flex-start}.hero-side{display:none}.onboarding-steps{grid-template-columns:1fr 1fr}.voucher-row{grid-template-columns:1fr 1fr}.voucher-row>*:first-child{grid-column:1/-1}.redeem-card{grid-template-columns:1fr}.redeem-card .button{width:100%}}
@media(max-width:420px){.onboarding-steps{grid-template-columns:1fr}.dashboard-hero-v151{border-radius:18px}}


/* v1.0.55：所有页面共用的单列新手引导与 H5 弹窗优化。 */
.onboarding-steps{display:grid;grid-template-columns:1fr;gap:10px}
.onboarding-step{width:100%;display:grid;grid-template-columns:42px minmax(112px,.36fr) 1fr auto;align-items:center;text-align:left}
.onboarding-card{box-shadow:0 12px 34px rgba(89,69,55,.08);border:1px solid rgba(150,98,63,.10)}
.modal-card{width:min(720px,calc(100vw - 24px)) !important;max-width:720px !important}
.modal-card form,.modal-card .form-grid,.modal-card .form-section,.modal-card .field{width:100% !important;min-width:0 !important}
@media (max-width:680px){.modal-card{width:calc(100vw - 16px) !important;max-width:none !important;padding:16px !important;border-radius:22px !important}.modal-card .form-grid{grid-template-columns:1fr !important}.modal-card .form-actions,.modal-card .modal-actions{width:100% !important}.modal-card .modal-actions .button{flex:1 1 100%}.onboarding-step{grid-template-columns:38px minmax(100px,.5fr) 1fr auto;font-size:13px}}

/* v1.0.55：紧凑新手指引，降低首屏占用并保持可读性。 */
.onboarding-card{padding:14px 16px;margin-bottom:14px;border-radius:16px}
.onboarding-head{margin-bottom:10px}
.onboarding-head h3{font-size:16px}
.onboarding-step{padding:10px 12px;min-height:62px;border-radius:13px}
.onboarding-step b{width:24px;height:24px;border-radius:8px;margin-bottom:0;font-size:12px}
.onboarding-step strong{font-size:13px}
.onboarding-step small{margin-top:2px;font-size:11px;line-height:1.35}
@media (max-width:680px){
  .onboarding-card{padding:12px;margin-bottom:12px;border-radius:14px}
  .onboarding-head{margin-bottom:8px}
  .onboarding-head h3{font-size:15px}
  .onboarding-steps{gap:7px}
  .onboarding-step{grid-template-columns:30px minmax(84px,.5fr) 1fr auto;padding:8px 9px;min-height:50px;border-radius:11px}
  .onboarding-step b{width:22px;height:22px;border-radius:7px;font-size:11px}
  .onboarding-step strong{font-size:12px}
  .onboarding-step small{font-size:10px}
}
@media (max-width:420px){
  .onboarding-card{padding:10px;margin-bottom:10px}
  .onboarding-step{grid-template-columns:28px minmax(76px,.52fr) 1fr auto;padding:7px 8px;min-height:46px}
  .onboarding-step b{width:20px;height:20px;font-size:10px}
}


/* v1.0.55 final: compact guide, centered dialogs and operation logs */
.onboarding-steps{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
}
.onboarding-step{
  display:grid !important;
  grid-template-columns:32px minmax(0,1fr) auto !important;
  grid-template-areas:"index copy action" !important;
  align-items:center !important;
  gap:10px !important;
  min-height:64px !important;
  padding:11px 12px !important;
}
.onboarding-step>b{grid-area:index;margin:0 !important}
.onboarding-step .onboarding-copy{grid-area:copy;min-width:0}
.onboarding-step em{
  grid-area:action;
  color:#7f85a2;
  font-size:12px;
  font-style:normal;
  font-weight:700;
  white-space:nowrap;
}

#connectionModal,
#connectionDetailModal,
#publishModal,
#sourceModal{
  z-index:10000 !important;
  margin:auto !important;
  max-width:none !important;
  max-height:none !important;
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
}
#connectionModal::backdrop,
#connectionDetailModal::backdrop,
#publishModal::backdrop,
#sourceModal::backdrop{
  background:rgba(242,237,227,.56) !important;
  backdrop-filter:blur(12px) !important;
  -webkit-backdrop-filter:blur(12px) !important;
}
#connectionModal .modal-card{
  width:min(650px,calc(100vw - 24px)) !important;
  max-width:650px !important;
  max-height:min(86vh,780px) !important;
  overflow:auto !important;
}
#connectionDetailModal .modal-card{
  width:min(620px,calc(100vw - 24px)) !important;
  max-width:620px !important;
  max-height:86vh !important;
  overflow:auto !important;
}
#connectionModal #connectionMessage:not(:empty){
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  margin:4px 0 0 !important;
  padding:11px 13px !important;
  border:1px solid #e7e8ed !important;
  border-radius:12px !important;
  background:#f7f7f7 !important;
  color:#4a4e60 !important;
  box-shadow:none !important;
}
#connectionModal #connectionMessage.success:not(:empty){
  border-color:#ccebdc !important;
  background:#f1f4fc !important;
  color:#137253 !important;
}
#publishModal .modal-card{
  width:min(940px,calc(100vw - 32px)) !important;
  max-width:940px !important;
  max-height:88vh !important;
  overflow:auto !important;
  padding:24px !important;
}
#publishModal .selection-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}
#publishModal .selection-card,
#publishModal .publish-section,
#publishModal .field-selection{
  min-width:0 !important;
  border:1px solid #e7e8ed !important;
  border-radius:18px !important;
  background:#ffffff !important;
  padding:16px !important;
  box-shadow:0 8px 24px rgba(89,69,55,.055) !important;
}
.activity-list{display:grid !important;gap:10px !important}
.activity-row{
  display:grid !important;
  grid-template-columns:11px minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:12px !important;
  padding:14px 16px !important;
  border:1px solid #e7e8ed !important;
  border-radius:17px !important;
  background:#ffffff !important;
  box-shadow:0 6px 22px rgba(89,69,55,.045) !important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease !important;
}
.activity-row:hover{
  transform:translateY(-1px);
  border-color:#e7e8ed !important;
  box-shadow:0 10px 28px rgba(89,69,55,.075) !important;
}
.activity-dot{width:9px;height:9px;border-radius:50%;background:#9398ae;box-shadow:0 0 0 4px #f1f4fc}
.activity-dot.admin{background:#9398ae;box-shadow:0 0 0 4px #f7f7f7}
.activity-dot.system{background:#29b487;box-shadow:0 0 0 4px #f1f4fc}
.activity-main{min-width:0}.activity-main strong,.activity-main small{display:block}.activity-main strong{color:#1e1f20;font-size:14px}.activity-main small{margin-top:4px;color:#7f85a2;font-size:12px}
.activity-meta{display:grid;justify-items:end;gap:4px;color:#7f85a2;font-size:11px}.activity-meta code,.activity-row>code{padding:5px 8px;border-radius:8px;background:#f7f7f7;color:#717792;font-size:11px}

@media (max-width:900px){
  .onboarding-steps{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width:680px){
  .onboarding-steps{grid-template-columns:1fr !important;gap:7px !important}
  .onboarding-step{grid-template-columns:28px minmax(0,1fr) auto !important;min-height:48px !important;padding:8px 10px !important}
  #connectionModal .modal-card,
  #connectionDetailModal .modal-card,
  #publishModal .modal-card,
  #sourceModal .modal-card{
    width:calc(100vw - 14px) !important;
    max-width:none !important;
    max-height:calc(100dvh - 18px) !important;
    padding:16px !important;
    border-radius:22px !important;
  }
  #publishModal .selection-grid{grid-template-columns:1fr !important}
  .activity-row{grid-template-columns:10px minmax(0,1fr) !important;padding:12px 13px !important}
  .activity-meta{grid-column:2;justify-items:start;grid-auto-flow:column;justify-content:start;align-items:center}
}


/* v1.0.55：移动端优先的尺寸、触感与清晰层级。 */
:root{--v144-radius:18px;--v144-radius-small:12px;--v144-shadow:0 2px 5px #1e1f2003,0 10px 28px #1e1f2006;--v144-line:rgba(48,42,35,.08)}
html{scroll-padding-top:84px;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body:before{display:none!important}
body,.workspace,.admin-content,.content-view{background:#ffffff!important}
*,*:before,*:after{box-sizing:border-box}
.workspace,.content-view,.admin-content,.form-grid>*,.settings-layout>*{min-width:0}
.content-view,.admin-content{padding:24px!important}
.topbar{min-height:72px!important;padding:14px 24px!important;background:rgba(255,253,248,.94)!important;backdrop-filter:blur(16px)!important;border-color:#f1f4fc!important;box-shadow:0 1px 8px #1e1f2003!important}
.topbar h2{font-size:21px!important;line-height:1.3!important;letter-spacing:-.04em}
.breadcrumb{font-size:11px!important;margin-bottom:3px!important;color:#7f85a2!important}
.sidebar{background:#ffffff!important;border-right:1px solid #f1f4fc!important;box-shadow:none!important}
.sidebar-brand{padding:20px 18px 14px!important}
.sidebar-account{margin:4px 12px 12px!important;padding:10px!important;border:1px solid #f1f4fc!important;border-radius:14px!important;background:#f7f7f7!important}
.sidebar-nav{padding:8px 12px!important}
.nav-item{min-height:44px!important;border-radius:12px!important;padding:10px 12px!important;font-size:14px!important;transition:background .2s ease,color .2s ease!important}
.nav-item.active{background:#f7f7f7!important;color:#7f85a2!important;box-shadow:none!important}
.nav-label{font-size:10px!important;letter-spacing:.08em!important;margin:16px 12px 8px!important}
.nav-icon{width:28px!important;height:28px!important;border-radius:8px!important}
.account-trigger{padding:6px 9px!important;border:1px solid #f1f4fc!important;border-radius:12px!important;background:#ffffff!important;min-height:42px!important;box-shadow:none!important}
.avatar,.account-trigger-avatar{flex-shrink:0!important;object-fit:cover!important}
.avatar img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.page-head,.section-heading{gap:12px!important;margin-bottom:18px!important;flex-wrap:wrap}
.page-head h1,.section-heading h2{font-size:22px!important;letter-spacing:-.035em!important}
.panel,.card,.table-panel,.form-panel,.settings-card,.mapping-card,.synced-category-card,.mobile-record-card,.plan-card{border:1px solid #e7e8ed!important;border-radius:18px!important;box-shadow:0 2px 5px #1e1f2002,0 8px 24px #1e1f2004!important;background:#ffffff!important}
.form-panel,.settings-card{padding:20px!important}
.form-grid{gap:14px!important}
label{font-weight:500!important}
input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:#e7e8ed!important;border-radius:12px!important;min-height:44px!important;padding:10px 12px!important;transition:border-color .2s ease,box-shadow .2s ease!important;max-width:100%;font-size:16px!important}
input:focus,select:focus,textarea:focus{border-color:#d8c9b5!important;box-shadow:0 0 0 3px #7f85a212!important;outline:none!important}
input[type=checkbox],input[type=radio]{accent-color:#7f85a2;min-width:18px;min-height:18px}
.button,button.primary,button.secondary{border-radius:12px!important;min-height:42px!important;padding:10px 15px!important;font-size:14px!important;line-height:1.4!important;transition:background .2s ease,box-shadow .2s ease,transform .2s ease!important}
.button.primary{background:#7f85a2!important;border:1px solid transparent!important;box-shadow:0 2px 5px #7f85a216!important;color:#ffffff!important}
.button.secondary,.button.ghost{background:#f7f7f7!important;border:1px solid #e7e8ed!important;color:#4a4e60!important;box-shadow:none!important}
button:active:not(:disabled),.button:active:not(:disabled){transform:scale(.98)!important}
button:focus-visible,a:focus-visible{outline:3px solid #7f85a250!important;outline-offset:3px}
.close-button,.menu-button,.sidebar-toggle{min-width:42px!important;min-height:42px!important;border-radius:12px!important;touch-action:manipulation}
.onboarding-guide{padding:12px 14px!important;margin-bottom:16px!important;border:1px solid #e7e8ed!important;border-radius:16px!important;background:#ffffff!important;box-shadow:none!important}
.onboarding-guide-head{margin-bottom:8px!important}
.onboarding-guide-head h3,.onboarding-guide-head strong{font-size:13px!important}
.onboarding-guide-head p,.onboarding-copy small{display:none!important}
.onboarding-step{min-height:44px!important;padding:8px 10px!important;gap:8px!important;background:#ffffff!important;border-radius:10px!important;box-shadow:none!important}
.onboarding-step>b{width:24px!important;height:24px!important;font-size:11px!important;border-radius:8px!important}
.onboarding-copy strong{font-size:12px!important}
.onboarding-step em{font-size:11px!important}
.mapping-picker-trigger{min-height:44px!important;border:1px solid #e7e8ed!important;background:#ffffff!important;border-radius:12px!important;padding:10px 12px!important;font-size:14px!important;text-align:left}
.mapping-picker-menu{border:1px solid #e7e8ed!important;border-radius:14px!important;padding:6px!important;box-shadow:0 10px 34px #1e1f201c!important;background:#ffffff!important;overscroll-behavior:contain;touch-action:pan-y}
.mapping-picker-option{border-radius:9px!important;min-height:42px!important;font-size:14px!important;white-space:normal!important;word-break:break-word}
.mapping-picker-option.selected{background:#f1f4fc!important;color:#7f85a2!important}
.site-upload-field{display:grid;align-content:start;gap:8px;padding:14px;border:1px dashed #e7e8ed;border-radius:14px;background:#ffffff;min-width:0}
.site-upload-field input[type=file]{width:100%;padding:6px!important;border:0!important;box-shadow:none!important;background:transparent!important;font-size:13px!important;overflow:hidden}
input[type=file]::file-selector-button{border:0;background:#f1f4fc;color:#7f85a2;border-radius:9px;padding:10px 12px;margin-right:8px;font:inherit;cursor:pointer}
.site-upload-field small{font-size:11px;color:#7f85a2;line-height:1.5}
.message{overflow-wrap:anywhere;line-height:1.6!important}
.message:empty{display:none!important}
/* 对话框在顶层居中，反馈始终位于当前对话框内。 */
dialog[open]{position:fixed!important;inset:0!important;margin:auto!important;padding:0!important;border:0!important;background:transparent!important;max-width:calc(100vw - 32px)!important;max-height:calc(100dvh - 32px)!important;overflow:visible!important;box-shadow:none!important}
dialog::backdrop{background:rgba(48,42,35,.16)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important}
dialog .modal-card{width:min(620px,calc(100vw - 32px))!important;max-width:100%!important;max-height:calc(100dvh - 32px)!important;margin:0!important;padding:22px!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid #ffffffb3!important;border-radius:22px!important;background:#ffffff!important;box-shadow:0 16px 64px #1e1f2024!important}
#publishModal .modal-card{width:min(940px,calc(100vw - 32px))!important}
.modal-head{gap:12px!important;margin-bottom:18px!important}
.modal-head h2{font-size:20px!important;line-height:1.35!important}
.modal-head p{font-size:12px!important;line-height:1.6!important;margin-top:6px!important}
.modal-actions{gap:10px!important;margin-top:18px!important;flex-wrap:wrap}
.modal-actions .button{flex:1 1 auto}
.profile-password-block{margin-top:16px!important;padding-top:16px!important}
.release-footer{padding:16px 12px calc(16px + env(safe-area-inset-bottom))!important;font-size:11px!important;color:#7f85a2!important}
.table-panel{overflow:auto;overscroll-behavior-x:contain}
@media(hover:hover) and (pointer:fine){
  .button:hover:not(:disabled){transform:translateY(-1px)!important;filter:brightness(1.025)}
  .plan-card:hover,.mapping-card:hover{border-color:#e7e8ed!important;box-shadow:0 10px 28px #7f85a208!important}
}
@media(max-width:900px){
  .sidebar{position:fixed!important;top:0!important;bottom:0!important;height:100dvh!important;padding-bottom:env(safe-area-inset-bottom)!important}
  .sidebar-nav{flex:1;overflow-y:auto!important;min-height:0!important;overscroll-behavior:contain}
  .sidebar-toggle{flex-shrink:0}
}
@media(max-width:680px){
  .shell{padding:0!important}
  .content-view,.admin-content{padding:16px 12px!important}
  .workspace{width:100%!important;max-width:100vw!important;margin-left:0!important}
  .topbar{min-height:64px!important;padding:10px 12px!important;gap:10px!important}
  .topbar h2{font-size:18px!important;letter-spacing:-.03em!important}
  .topbar-actions{gap:6px!important;margin-left:auto!important;flex-shrink:0}
  .breadcrumb{display:none!important}
  .account-trigger{padding:5px!important;border-radius:11px!important}
  .account-trigger-copy{display:none!important}
  .account-trigger-avatar{width:30px!important;height:30px!important}
  .page-head h1,.section-heading h2{font-size:19px!important}
  .page-head,.section-heading{margin-bottom:14px!important}
  .panel,.form-panel,.settings-card,.card{padding:16px!important;border-radius:16px!important}
  .form-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  .form-grid>.span-2{grid-column:auto!important}
  .settings-layout,.settings-grid,.site-settings-layout,.site-settings-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  .onboarding-steps{grid-template-columns:1fr!important;gap:4px!important}
  .onboarding-step{min-height:36px!important;padding:5px 8px!important;grid-template-columns:24px minmax(0,1fr) auto!important}
  .onboarding-guide{padding:10px!important;margin-bottom:12px!important}
  .mobile-record-card{padding:14px!important;border-radius:16px!important}
  .mobile-record-head{gap:10px!important}
  .mobile-record-head strong,.synced-check strong{font-size:14px!important;overflow-wrap:anywhere}
  .synced-category-head,.synced-node-row{padding:12px!important;gap:8px!important}
  .synced-check{min-width:0!important;gap:10px!important}
  .synced-check>span{min-width:0!important}
  .sync-selection-bar{gap:10px!important;flex-wrap:wrap!important;padding:12px!important}
  .action-button{min-height:36px!important;padding:7px 10px!important;white-space:nowrap}
  .db-switcher,.database-switcher,.synced-switcher{flex-wrap:wrap!important;gap:10px!important}
  .db-switcher select,.database-switcher select,.synced-switcher select{width:100%!important;max-width:100%!important}
  dialog[open]{max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 20px)!important}
  dialog .modal-card,#connectionModal .modal-card,#connectionDetailModal .modal-card,#publishModal .modal-card,#sourceModal .modal-card{width:calc(100vw - 16px)!important;max-width:100%!important;max-height:calc(100dvh - 20px)!important;padding:18px 16px!important;border-radius:20px!important}
  .modal-head h2{font-size:19px!important}
  .modal-actions{position:relative!important;bottom:auto!important;padding-bottom:env(safe-area-inset-bottom)!important}
  .modal-actions .button{min-height:44px!important}
  .site-upload-field{padding:12px!important}
  .auth-card,.admin-login-card{padding:24px 20px!important;border-radius:22px!important}
  .auth-layout,.admin-auth{padding:20px 12px!important}
  .stats-grid,.stats-row{gap:8px!important}
  .stat-card{min-height:86px!important;padding:12px!important;border-radius:14px!important}
  .stat-card strong{font-size:24px!important}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v1.1.25: 分类映射的目标数据库统一使用下拉框，避免把连接名称堆叠成大卡片。 */
.mapping-switcher-simple{align-items:flex-end}
.mapping-database-field{display:grid;gap:6px;min-width:min(360px,100%)}
.mapping-database-field .field-caption{font-size:12px;font-weight:700;color:var(--muted)}
.mapping-database-select{width:100%;min-height:42px;padding:0 38px 0 14px;border:1px solid #e7e8ed;border-radius:13px;color:#1e1f20;background:#ffffff;font:inherit;box-shadow:0 3px 12px rgba(89,69,55,.05);cursor:pointer}
.mapping-database-select:hover{border-color:#d8c9b5}
.mapping-database-select:focus{outline:0;border-color:#7f85a2;box-shadow:0 0 0 3px rgba(150,98,63,.16)}
.mapping-database-select:disabled{cursor:not-allowed;opacity:.64;background:#f7f7f7}
@media(max-width:620px){.mapping-database-field{min-width:0;width:100%}.mapping-database-select{min-height:44px}}

/* v1.1.25: H5 分类映射的数据库选择和刷新操作各占一行，按钮居中并顶满容器。 */
@media(max-width:620px){
  .mapping-switcher-simple{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px}
  .mapping-switcher-simple .mapping-database-field{width:100%;min-width:0}
  .mapping-switcher-simple #reloadMappings{display:inline-flex;width:100%;min-width:0;justify-content:center;align-items:center;text-align:center;align-self:stretch}
}

/* v1.1.25：来源数据库账号监测卡片。 */
.source-accounts-panel{overflow:hidden}.source-accounts-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:0 22px 18px}.source-accounts-toolbar label{display:grid;min-width:220px;gap:6px;color:var(--ink-2);font-size:11px;font-weight:650}.source-accounts-toolbar select{min-height:42px;padding:0 34px 0 12px;border:1px solid var(--line-strong);border-radius:13px;background:#ffffff;color:var(--ink);font:inherit}.source-accounts-toolbar .button{min-height:42px}.source-accounts-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 22px 22px}.source-account-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#ffffff,#ffffff);box-shadow:0 8px 22px rgba(48,42,35,.05)}.source-account-card.is-online{border-color:rgba(52,199,89,.26)}.source-account-head{display:flex;align-items:center;min-width:0;gap:11px}.source-account-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;overflow:hidden;border-radius:14px;background:#f1f4fc;color:#717792;font-size:18px;font-weight:750}.source-account-avatar img{width:100%;height:100%;object-fit:cover}.source-account-identity{display:grid;min-width:0;gap:4px}.source-account-identity strong{overflow:hidden;color:var(--ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.source-account-identity small{color:var(--muted);font-size:11px}.source-account-state{display:inline-flex;align-items:center;gap:5px;flex:none;margin-left:auto;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700}.source-account-state i{width:6px;height:6px;border-radius:50%;background:#7f85a2}.source-account-state.online{background:#f1f4fc;color:#19873d}.source-account-state.online i{background:#34c759}.source-account-state.offline{background:#f1f4fc;color:#7f85a2}.source-account-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}.source-account-meta span{display:grid;min-width:0;gap:4px}.source-account-meta .wide{grid-column:1/-1}.source-account-meta small{color:var(--muted);font-size:10px}.source-account-meta strong{overflow:hidden;color:var(--ink-2);font-size:11px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1050px){.source-accounts-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.source-accounts-toolbar{display:grid;grid-template-columns:1fr;padding:0 15px 15px}.source-accounts-toolbar label{min-width:0}.source-accounts-toolbar .button{width:100%}.source-accounts-list{grid-template-columns:1fr;padding:0 15px 15px}.source-account-card{padding:14px;border-radius:16px}.source-account-state{font-size:10px}.source-account-meta{margin-top:12px}}

/* v1.1.25：源数据库只读全面扫描结果。 */
.source-scan-result{margin:0 22px 22px;border-top:1px solid var(--line);overflow:hidden}.source-scan-head{display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px}.source-scan-head strong{display:block;color:var(--ink);font-size:13px}.source-scan-head small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.6}.source-scan-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.source-scan-table-wrap table{min-width:820px;width:100%;border-collapse:collapse;font-size:11px}.source-scan-table-wrap th,.source-scan-table-wrap td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.source-scan-table-wrap th{background:#f7f7f7;color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.source-scan-table-wrap tr:last-child td{border-bottom:0}.source-scan-table-wrap code{color:#717792}.source-scan-table-wrap details summary{cursor:pointer;color:#717792}.source-scan-table-wrap pre{max-width:360px;max-height:180px;margin:8px 0 0;padding:9px;overflow:auto;border-radius:10px;background:#f7f7f7;color:#4a4e60;font-size:10px;line-height:1.5;white-space:pre-wrap}.source-accounts-toolbar .ghost{background:#ffffff;color:#717792;border-color:var(--line-strong)}@media(max-width:700px){.source-scan-result{margin:0 15px 15px}.source-scan-head{padding-top:13px}.source-scan-table-wrap{border-radius:12px}}

/* v1.1.25：客户数据库在线 QQ 监测面板。 */
.customer-accounts-panel{overflow:hidden}.customer-accounts-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:0 22px 18px}.customer-accounts-toolbar label{display:grid;min-width:190px;gap:6px;color:var(--ink-2);font-size:11px;font-weight:650}.customer-accounts-toolbar select{min-height:42px;padding:0 34px 0 12px;border:1px solid var(--line-strong);border-radius:13px;background:#ffffff;color:var(--ink);font:inherit}.customer-accounts-toolbar .button{min-height:42px}.customer-accounts-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 22px 22px}.customer-account-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#ffffff,#ffffff);box-shadow:0 8px 22px rgba(48,42,35,.05)}.customer-account-card.is-online{border-color:rgba(52,199,89,.28)}.customer-account-head{display:flex;align-items:center;min-width:0;gap:11px}.customer-account-avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;overflow:hidden;border-radius:14px;background:#f1f4fc;color:#717792;font-size:18px;font-weight:750}.customer-account-avatar img{width:100%;height:100%;object-fit:cover}.customer-account-identity{display:grid;min-width:0;gap:4px}.customer-account-identity strong{overflow:hidden;color:var(--ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.customer-account-identity small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.customer-account-head .source-account-state{margin-left:auto}.customer-account-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}.customer-account-meta span{display:grid;min-width:0;gap:4px}.customer-account-meta .wide{grid-column:1/-1}.customer-account-meta small{color:var(--muted);font-size:10px}.customer-account-meta strong{overflow:hidden;color:var(--ink-2);font-size:11px;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1050px){.customer-accounts-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.customer-accounts-toolbar{display:grid;grid-template-columns:1fr;padding:0 15px 15px}.customer-accounts-toolbar label{min-width:0}.customer-accounts-toolbar .button{width:100%}.customer-accounts-list{grid-template-columns:1fr;padding:0 15px 15px}.customer-account-card{padding:14px;border-radius:16px}}



/* v1.1.25: desktop sidebar collapse + balanced owner/search layouts */
@media (min-width:861px){
  .sidebar{position:fixed!important;isolation:isolate;overflow:visible!important;transition:width .22s ease,padding .22s ease!important}
  .workspace{transition:margin-left .22s ease!important}
  .sidebar-toggle{display:grid!important;place-items:center!important;position:absolute!important;z-index:20!important;top:18px!important;right:12px!important;width:34px!important;height:34px!important;padding:0!important;border:1px solid #e7e8ed!important;border-radius:11px!important;background:#ffffff!important;color:#7f85a2!important;font-size:16px!important;line-height:1!important;cursor:pointer!important}
  .sidebar-toggle:hover{background:#f7f7f7!important;color:#717792!important}
  body.sidebar-is-collapsed .sidebar{width:78px!important;padding-left:10px!important;padding-right:10px!important}
  body.sidebar-is-collapsed .workspace{margin-left:78px!important}
  body.sidebar-is-collapsed .sidebar-brand{justify-content:center!important;padding-left:0!important;padding-right:0!important}
  body.sidebar-is-collapsed .sidebar-brand .brand-copy,
  body.sidebar-is-collapsed .sidebar-account,
  body.sidebar-is-collapsed .console-chip,
  body.sidebar-is-collapsed .nav-label,
  body.sidebar-is-collapsed .nav-item>span:not(.nav-icon),
  body.sidebar-is-collapsed .sidebar-foot .sidebar-foot-copy{display:none!important}
  body.sidebar-is-collapsed .nav-item{justify-content:center!important;gap:0!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
  body.sidebar-is-collapsed .nav-icon{width:30px!important;height:30px!important}
  body.sidebar-is-collapsed .sidebar-toggle{right:22px!important}
  body.sidebar-is-collapsed .sidebar-toggle span{font-size:0}
  body.sidebar-is-collapsed .sidebar-toggle span:after{content:'›';font-size:19px}
  body:not(.sidebar-is-collapsed) .sidebar-toggle span{font-size:0}
  body:not(.sidebar-is-collapsed) .sidebar-toggle span:after{content:'‹';font-size:19px}
}
.statistics-heading-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.admin-search-field{display:grid;gap:5px;min-width:190px;color:#7f85a2;font-size:11px;font-weight:600}
.admin-search-field input{width:100%;min-height:42px;padding:9px 13px;border:1px solid #e7e8ed;border-radius:13px;background:#ffffff;color:#1e1f20;font-size:13px;outline:none}
.admin-search-field input::placeholder{color:#9398ae}
.admin-search-field input:focus{border-color:#9398ae;box-shadow:0 0 0 3px rgba(150,98,63,.12)}
.customer-accounts-toolbar{align-items:end!important}
.customer-accounts-toolbar .customer-accounts-search{flex:1 1 260px;min-width:220px}
.customer-accounts-toolbar .customer-accounts-search input{min-height:44px}
.customer-database-summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important}
.customer-database-summary>.customer-owner-identity{min-width:0}
.customer-owner-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.stats-row-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
.stats-row-values>span{min-width:0;text-align:center}
@media(max-width:860px){
  .statistics-heading-actions{align-items:stretch;justify-content:stretch;width:100%}
  .statistics-heading-actions .admin-search-field{flex:1 1 100%;min-width:0}
  .statistics-heading-actions .button{width:100%}
  .customer-accounts-toolbar .customer-accounts-search{min-width:0}
  .customer-database-summary{grid-template-columns:minmax(0,1fr) auto!important}
}
@media(max-width:520px){
  .customer-owner-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .customer-database-summary{grid-template-columns:minmax(0,1fr) auto!important}
}


/* v1.1.25: 一级目录/二级菜单上下折叠；取消整栏缩放按钮。 */
.sidebar-toggle{display:none!important}
.nav-group{display:grid;gap:3px;margin:0 0 5px}
.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;padding:5px 9px;border:0;border-radius:11px;background:transparent;color:var(--muted);text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease}
.nav-group-toggle:hover{background:#f7f7f7;color:#717792}
.nav-group-toggle:focus-visible{outline:2px solid rgba(121,84,57,.34);outline-offset:2px}
.nav-group-toggle .nav-label{flex:1;margin:0;padding:4px 0;color:inherit;font-size:10px;letter-spacing:.1em;text-transform:none}
.nav-group-chevron{position:relative;flex:0 0 17px;width:17px;height:17px;margin-right:2px;border:1px solid #e7e8ed;border-radius:6px;background:#ffffff;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.nav-group-chevron::after{content:'';position:absolute;left:5px;top:4px;width:5px;height:5px;border-right:1.5px solid #7f85a2;border-bottom:1.5px solid #7f85a2;transform:rotate(45deg);transition:transform .18s ease}
.nav-group-toggle:hover .nav-group-chevron{border-color:#d8c9b5;background:#f7f7f7}
.nav-group:not(.is-collapsed) .nav-group-chevron::after{top:6px;transform:rotate(225deg)}
.nav-group-items{display:grid;gap:4px;min-height:0;overflow:hidden;animation:nav-group-open .18s ease both}
.nav-group-items[hidden]{display:none}
@keyframes nav-group-open{from{opacity:.35;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}

/* 账号监测/统计管理：统一列宽、字段居中、卡片内外边距一致。 */
.customer-database-summary{grid-template-columns:minmax(0,1fr) auto!important;column-gap:22px!important;padding:17px 20px!important}
.customer-database-summary>.customer-owner-identity{width:100%;min-width:0}
.customer-owner-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:center!important;gap:18px!important}
.customer-owner-field{align-items:center!important;text-align:center!important}
.customer-owner-field small{white-space:nowrap}
.customer-owner-field strong,.customer-owner-field .customer-owner-badge{max-width:100%;text-align:center}
.customer-database-stats{min-width:185px;text-align:right}
.stats-row-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:20px!important;align-items:center!important}
.stats-row-main>.customer-owner-identity{width:100%;min-width:0}
.stats-row-main .customer-owner-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.stats-row-main>.stats-status{align-self:center}
.stats-row-values{grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important}
.stats-row-values>span{display:grid;place-items:center;min-height:74px;text-align:center!important}
.stats-row-values small{white-space:nowrap}
@media(max-width:900px){
  .customer-database-summary{grid-template-columns:minmax(0,1fr) auto!important;column-gap:12px!important}
  .customer-database-summary .customer-database-stats{min-width:0;max-width:180px}
  .stats-row-main{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}
  .customer-owner-fields,.stats-row-main .customer-owner-fields{gap:10px!important}
}
@media(max-width:620px){
  .nav-group{margin-bottom:3px}
  .nav-group-toggle{min-height:36px}
  .customer-database-summary{display:flex!important;align-items:flex-start!important;flex-wrap:wrap;gap:10px!important;padding:14px!important}
  .customer-database-summary>.customer-owner-identity{flex:1 1 calc(100% - 32px)}
  .customer-database-summary .customer-database-stats{order:3;flex:1 1 100%;margin-left:46px;max-width:none;text-align:left}
  .customer-database-summary .customer-database-arrow{margin-left:auto}
  .stats-row-main{display:flex!important;align-items:flex-start!important;flex-wrap:wrap;gap:10px!important}
  .stats-row-main>.customer-owner-identity{flex:1 1 100%}
  .stats-row-main>.stats-status{margin-left:46px}
  .customer-owner-fields,.stats-row-main .customer-owner-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .customer-owner-field:first-child{grid-column:1/-1}
  .stats-row-values{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .stats-row-values>span{min-height:64px}
}


/* v1.1.25: per-database upstream auto-sync */
.auto-sync-toggle{display:flex;align-items:flex-start;gap:10px;max-width:390px;padding:10px 12px;border:1px solid #e7e8ed;border-radius:15px;background:rgba(255,253,248,.78);cursor:pointer}.auto-sync-toggle input{appearance:none;width:42px;height:24px;min-width:42px;border:0;border-radius:999px;background:#d8c9b5;position:relative;outline:0;margin:2px 0 0}.auto-sync-toggle input:checked{background:#34c759}.auto-sync-toggle input:after{content:"";position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#ffffff;box-shadow:0 1px 3px rgba(48,42,35,.2);transition:left .18s ease}.auto-sync-toggle input:checked:after{left:21px}.auto-sync-toggle strong{display:block;font-size:13px;color:#1e1f20}.auto-sync-toggle small{display:block;margin-top:2px;color:#717792;font-size:12px;line-height:1.45}.mail-event-switches{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:680px){.auto-sync-toggle{max-width:none;width:100%}.mail-event-switches{grid-template-columns:1fr}}

/* v1.1.25: mail automation setup */
.mail-automation-card{display:grid;gap:16px;padding:18px}.mail-automation-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mail-automation-facts>div{display:grid;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.mail-automation-facts small{color:var(--muted);font-size:11px}.mail-automation-facts strong{font-size:13px;font-weight:600}.mail-automation-command{display:grid;gap:7px}.mail-automation-command textarea{min-height:58px;resize:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.mail-automation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.mail-automation-message{color:var(--muted)}.mail-automation-last-run{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.mail-automation-last-run strong{color:var(--text)}
@media(max-width:700px){.mail-automation-facts{grid-template-columns:1fr}.mail-automation-card{padding:15px}}

/* v1.1.25: unified scheduled-task page and administrator-only source API preview. */
.task-page{display:grid;gap:18px}.task-automation-card{max-width:980px}.task-purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task-purpose-card{display:flex;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#ffffff,#f7f7f7);box-shadow:0 8px 24px rgba(48,42,35,.035)}.task-purpose-card strong{display:block;color:var(--text);font-size:14px}.task-purpose-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.task-purpose-icon{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:#f1f4fc;color:#27884e;font-weight:800}.task-setup-tip{max-width:980px}.published-node{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px}.published-node-copy{display:grid;min-width:0;gap:3px}.published-node-copy strong{overflow-wrap:anywhere}.published-node-api,.selection-node-api{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.selection-node-api{margin-top:3px;line-height:1.45}.published-node-api{padding:2px 5px;border-radius:6px;background:rgba(48,42,35,.045)}@media(max-width:700px){.task-purpose-grid{grid-template-columns:1fr}.task-purpose-card{padding:14px}.published-node{align-items:start}.published-node-api{white-space:normal}}

/* v1.1.25：已对接分类使用显式折叠状态，避免外部样式覆盖 HTML hidden 属性。 */
.synced-category-card .synced-node-list[hidden]{display:none!important}
.synced-category-card.is-expanded .synced-node-list{display:grid!important}
.synced-expand-button{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.synced-expand-icon{display:inline-grid;place-items:center;width:12px;color:currentColor;font-size:14px;font-weight:800;line-height:1;transition:transform .16s ease}
.synced-category-card.is-expanded .synced-expand-icon{transform:rotate(180deg)}
@media(max-width:700px){.synced-category-head{flex-wrap:wrap}.synced-category-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;width:100%}.synced-expand-button{flex:1;min-width:118px}}
.mail-template-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px}.mail-template-actions small{color:var(--muted);font-size:12px;line-height:1.55}.mail-template-actions .button{min-height:34px;padding:7px 12px;font-size:12px}

/* 发布窗口的来源结构与样本 */
.selection-structure-wrap{margin-top:16px;display:grid;gap:10px}
.publish-structure{border:1px solid #e7e8ed;border-radius:12px;background:#ffffff;overflow:hidden}
.publish-structure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;list-style:none;cursor:pointer;user-select:none}
.publish-structure>summary::-webkit-details-marker{display:none}
.publish-structure>summary span{display:grid;gap:2px}
.publish-structure>summary strong{font-size:13px;color:#1e1f20}
.publish-structure>summary small{font-size:11px;color:#7f85a2}
.publish-structure>summary i{width:8px;height:8px;border-right:2px solid #9398ae;border-bottom:2px solid #9398ae;transform:rotate(45deg);transition:transform .15s;flex:0 0 auto}
.publish-structure[open]>summary i{transform:rotate(225deg)}
.publish-structure-grid{overflow:auto;max-height:320px;border-top:1px solid #e7e8ed}
.publish-structure-grid table{width:100%;border-collapse:collapse;font-size:12px}
.publish-structure-grid th{position:sticky;top:0;background:#f7f7f7;color:#4a4e60;font-weight:600;text-align:left;padding:7px 10px;white-space:nowrap;border-bottom:1px solid #e7e8ed}
.publish-structure-grid td{padding:6px 10px;border-bottom:1px solid #f1f4fc;color:#1e1f20;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.publish-empty-cell{color:#9398ae}
