:root {
  color-scheme: light;
  --brand: #075f3e;
  --brand-2: #0d7953;
  --brand-soft: #e4f1e9;
  --accent: #d59a4a;
  --bg: #f3f5f1;
  --surface: #fffefa;
  --surface-2: #f7f8f4;
  --text: #1d2a23;
  --muted: #5d6d65;
  --line: #dfe6e1;
  --danger: #c94843;
  --warning: #b87518;
  --info: #3779b9;
  --purple: #7a5eb1;
  --shadow: 0 14px 38px rgba(29, 63, 47, .09);
  --shadow-soft: 0 6px 20px rgba(29, 63, 47, .07);
  --radius: 18px;
  --radius-sm: 12px;
  --sidebar: #064c34;
  --sidebar-text: rgba(255,255,255,.7);
  --sidebar-active: rgba(255,255,255,.13);
  --font-size: 15px;
  --content-width: 1480px;
}

/* 手机号密码登录：只记账号或安全会话令牌，绝不保存密码原文 */
.password-login-shell{margin-top:12px}
.password-login-toggle{width:100%;min-height:54px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px 10px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}
.password-login-toggle>span{font-size:13px;font-weight:800}.password-login-toggle>small{grid-column:1;color:var(--muted);font-size:10px}.password-login-toggle>i{grid-column:2;grid-row:1/3;color:var(--brand);font-size:16px;font-style:normal;transition:transform .18s}.password-login-toggle[aria-expanded="true"]>i{transform:rotate(180deg)}
.password-login-panel{margin-top:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.password-login-panel form,.password-recovery-panel{display:grid;gap:11px}
.password-field{display:grid;gap:5px;color:var(--text);font-size:11px;font-weight:700}.password-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;outline:0}.password-field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent)}
.password-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto}.password-input-wrap input{border-radius:9px 0 0 9px}.password-input-wrap button{min-width:58px;min-height:44px;border:1px solid var(--line);border-left:0;border-radius:0 9px 9px 0;background:var(--surface);color:var(--brand);font-weight:800;cursor:pointer}
.password-options{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.password-options label{min-height:32px;display:flex;align-items:center;gap:5px;color:var(--text);font-size:11px;cursor:pointer}.password-options input{width:17px;height:17px;accent-color:var(--brand)}
.password-security-note{color:var(--muted);font-size:10px;line-height:1.55}.password-submit{width:100%;min-height:45px;border:0;border-radius:9px;background:var(--brand);color:#fff;font-size:13px;font-weight:800;cursor:pointer}.password-submit:disabled{cursor:wait;opacity:.65}.password-recovery-link{min-height:38px;border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:800;cursor:pointer}.password-message{margin:0;padding:9px 10px;border-radius:8px;background:#e7f4ec;color:#186242;font-size:10px;line-height:1.5}.password-message.is-error{background:#fff0ef;color:#8f2f2b}.password-message.is-warning{background:#fff6df;color:#80540d}
.password-recovery-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.password-recovery-head strong{font-size:13px}.password-recovery-head button{min-height:38px;border:0;background:transparent;color:var(--brand);font-weight:800;cursor:pointer}.password-recovery-panel>p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}
.app-frame.is-mobile .password-login-panel{padding:12px}.app-frame.is-mobile .password-options{align-items:flex-start;flex-direction:column;gap:2px}
@media (max-width:760px){.password-login-panel{padding:12px}.password-options{align-items:flex-start;flex-direction:column;gap:2px}.password-login-toggle,.password-submit,.password-recovery-link,.password-recovery-head button,.password-input-wrap button{min-height:44px}}
.account-security-entry{width:100%;min-height:60px;margin-top:12px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer}.account-security-entry>span{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:900}.account-security-entry strong,.account-security-entry small{display:block}.account-security-entry strong{font-size:12px}.account-security-entry small{margin-top:3px;color:var(--muted);font-size:10px}.account-security-entry>i{color:var(--brand);font-size:10px;font-style:normal;font-weight:800}.account-security-entry:disabled{cursor:not-allowed;opacity:.58}
.account-security-modal{width:min(560px,100%)}.account-security-content{display:grid;gap:13px;padding:18px 22px}.account-security-status{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:11px;border-radius:10px;background:var(--brand-soft);color:var(--brand)}.account-security-status>span{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:var(--surface);font-weight:900}.account-security-status strong,.account-security-status small{display:block}.account-security-status small{margin-top:3px;color:var(--muted);font-size:10px}.account-security-status.is-warning{background:#fff6df;color:#80540d}.account-security-status.is-success{background:#e7f4ec;color:#186242}.account-security-rules{display:grid;grid-template-columns:25px 1fr;gap:6px 9px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.account-security-rules>span{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:900}.account-security-rules>p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.account-security-modal input:disabled{cursor:not-allowed;opacity:.62;background:var(--surface-2)}
.session-exit-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 24px;border-top:1px solid var(--line);background:var(--surface)}.session-exit-panel label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;cursor:pointer}.session-exit-panel input{accent-color:var(--brand)}.session-exit-panel button{min-height:38px;padding:8px 16px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:11px;font-weight:800;cursor:pointer}.session-exit-panel button:hover{border-color:var(--brand);background:var(--surface-2)}.session-exit-panel button:disabled{cursor:wait;opacity:.65}
@media (max-width:760px){.account-security-content{padding:15px}.account-security-modal .modal-actions{display:grid;grid-template-columns:1fr}.account-security-modal .modal-actions .button{width:100%;min-height:44px}}
@media (max-width:760px){.session-exit-panel{align-items:stretch;flex-direction:column;padding:14px 16px}.session-exit-panel button{width:100%;min-height:44px}.session-exit-panel label{min-height:32px}}

body[data-theme="business"] {
  --brand: #0b5144;
  --brand-2: #176d5c;
  --brand-soft: #dcebe6;
  --accent: #d6ad56;
  --bg: #e9efed;
  --surface: #ffffff;
  --surface-2: #f2f6f5;
  --text: #182522;
  --muted: #687874;
  --line: #d2ddda;
  --shadow: 0 8px 24px rgba(10, 46, 38, .10);
  --shadow-soft: 0 3px 12px rgba(10, 46, 38, .08);
  --radius: 10px;
  --radius-sm: 7px;
  --sidebar: #0b342e;
  --sidebar-active: #176252;
  --font-size: 14px;
}

body[data-theme="soft"] {
  --brand: #177355;
  --brand-2: #2b936e;
  --brand-soft: #dff3e7;
  --accent: #e68a7d;
  --bg: #edf7f1;
  --surface: #fffdfb;
  --surface-2: #f3faf5;
  --text: #26352d;
  --muted: #77867e;
  --line: #dfece3;
  --shadow: 0 16px 42px rgba(43, 113, 81, .10);
  --shadow-soft: 0 8px 24px rgba(43, 113, 81, .08);
  --radius: 24px;
  --radius-sm: 16px;
  --sidebar: #ffffff;
  --sidebar-text: #6f8077;
  --sidebar-active: #e3f3e9;
  --font-size: 15px;
}

body[data-theme="contrast"] {
  --brand: #004b31;
  --brand-2: #006f49;
  --brand-soft: #e3f1e9;
  --accent: #f0b323;
  --bg: #fffdf4;
  --surface: #ffffff;
  --surface-2: #f8f7ef;
  --text: #101612;
  --muted: #56605a;
  --line: #cdd5d0;
  --shadow: 0 7px 0 rgba(0, 75, 49, .10);
  --shadow-soft: 0 4px 0 rgba(0, 75, 49, .08);
  --radius: 10px;
  --radius-sm: 8px;
  --sidebar: #003a27;
  --sidebar-active: #f0b323;
  --font-size: 17px;
}

body[data-theme="minimal"] {
  --brand: #185f48;
  --brand-2: #185f48;
  --brand-soft: #edf4f1;
  --accent: #111914;
  --bg: #f8f9f8;
  --surface: #ffffff;
  --surface-2: #fafbfa;
  --text: #171c19;
  --muted: #737b76;
  --line: #dde1de;
  --shadow: none;
  --shadow-soft: none;
  --radius: 3px;
  --radius-sm: 2px;
  --sidebar: #ffffff;
  --sidebar-text: #6b746f;
  --sidebar-active: #eef3f0;
  --font-size: 15px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); }
body { margin: 0; color: var(--text); background: var(--bg); font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif; font-size: var(--font-size); line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, select { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(18, 128, 86, .22); outline-offset: 2px; }
.is-hidden { display: none !important; }
.eyebrow { margin: 0 0 7px; color: var(--brand-2); font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }
.danger-text { color: var(--danger) !important; }
.brand-logo { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; display: block; flex: 0 0 auto; }
.brand-logo--large { width: 110px; height: 110px; box-shadow: 0 12px 32px rgba(0,75,49,.16); }

/* 方案选择页 */
.style-hub { min-height: 100vh; padding: 58px clamp(22px, 5vw, 80px) 30px; background:
  radial-gradient(circle at 10% 2%, rgba(202,226,211,.75), transparent 28%),
  radial-gradient(circle at 92% 20%, rgba(238,218,178,.35), transparent 25%),
  #f7f7f1; overflow: hidden; position: relative; }
.style-hub::before, .style-hub::after { content: ""; position: absolute; border: 1px solid rgba(4,95,61,.08); border-radius: 50%; pointer-events: none; }
.style-hub::before { width: 420px; height: 420px; right: -210px; top: 31%; }
.style-hub::after { width: 280px; height: 280px; left: -160px; bottom: 12%; }
.hub-header { max-width: 1480px; margin: 0 auto 42px; display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; position: relative; z-index: 1; }
.brand-lockup { display: flex; align-items: center; gap: 28px; }
.brand-lockup h1 { margin: 0; font-size: clamp(32px, 4vw, 58px); line-height: 1.12; letter-spacing: -.04em; color: #173126; }
.hub-lead { max-width: 680px; margin: 18px 0 0; color: #68766f; font-size: 16px; }
.prototype-note { display: flex; align-items: center; gap: 12px; padding: 15px 18px; background: rgba(255,255,255,.68); border: 1px solid rgba(17,93,62,.12); border-radius: 14px; backdrop-filter: blur(10px); flex: 0 0 auto; }
.note-dot { width: 10px; height: 10px; border-radius: 50%; background: #21a56e; box-shadow: 0 0 0 6px rgba(33,165,110,.12); }
.prototype-note strong, .prototype-note small { display: block; }
.prototype-note small { margin-top: 2px; color: #728078; }
.style-grid { max-width: 1480px; margin: auto; display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; position: relative; z-index: 1; }
.style-card { min-width: 0; grid-column: span 2; background: white; border: 1px solid rgba(9,76,49,.11); border-radius: 22px; overflow: hidden; box-shadow: 0 18px 55px rgba(34,63,49,.08); transition: transform .25s ease, box-shadow .25s ease; position: relative; }
.style-card:nth-child(4) { grid-column: 2 / span 2; }
.style-card:hover { transform: translateY(-6px); box-shadow: 0 24px 65px rgba(34,63,49,.15); }
.recommend-badge { position: absolute; z-index: 2; right: 14px; top: 14px; padding: 6px 11px; border-radius: 999px; background: #f1bc5b; color: #4f3510; font-size: 12px; font-weight: 800; }
.mini-app { height: 188px; display: grid; grid-template-columns: 23% 1fr; padding: 18px; gap: 12px; overflow: hidden; }
.mini-side { border-radius: 9px; padding: 16px 9px; display: flex; flex-direction: column; gap: 10px; }
.mini-side i { display: block; height: 7px; width: 78%; border-radius: 8px; background: rgba(255,255,255,.35); }
.mini-side i:nth-child(2) { width: 92%; }
.mini-main { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding-top: 3px; }
.mini-main > span { display: block; width: 34%; height: 7px; border-radius: 7px; background: currentColor; opacity: .2; }
.mini-hero { height: 42px; border-radius: 9px; background: currentColor; opacity: .11; }
.mini-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.mini-metrics b { height: 33px; border-radius: 7px; background: white; box-shadow: 0 3px 12px rgba(0,0,0,.06); }
.mini-list { height: 28px; border-radius: 7px; background: white; box-shadow: 0 3px 12px rgba(0,0,0,.05); }
.mini-list.short { width: 72%; }
.mini-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.mini-actions b { height: 40px; background: white; border: 2px solid currentColor; border-radius: 5px; opacity: .7; }
.style-card--fresh .mini-app { background: #edf2e9; color: #075f3e; }.style-card--fresh .mini-side { background: #07563a; }
.style-card--business .mini-app { background: #dce5e2; color: #0b5144; }.style-card--business .mini-side { background: #0b342e; border-radius: 3px; }.style-card--business .mini-main { gap: 7px; }.style-card--business .mini-list { border-radius: 3px; }
.style-card--soft .mini-app { background: #e9f6ee; color: #258565; }.style-card--soft .mini-side { background: white; box-shadow: 0 6px 15px rgba(40,100,70,.1); border-radius: 14px; }.style-card--soft .mini-side i { background: #b5d9c4; }.style-card--soft .mini-hero, .style-card--soft .mini-list, .style-card--soft .mini-metrics b { border-radius: 13px; }
.style-card--contrast .mini-app { background: #fff9df; color: #004b31; }.style-card--contrast .mini-side { background: #003a27; border-radius: 4px; }.style-card--contrast .mini-hero { border: 3px solid #004b31; background: #f0b323; opacity: 1; border-radius: 4px; }
.style-card--minimal .mini-app { background: #fafafa; color: #15251e; }.style-card--minimal .mini-side { background: white; border-right: 1px solid #d5dcd8; border-radius: 0; }.style-card--minimal .mini-side i { background: #aeb8b3; }.style-card--minimal .mini-list, .style-card--minimal .mini-metrics b { box-shadow: none; border: 1px solid #d8dedb; border-radius: 1px; }
.style-card__body { padding: 25px 25px 27px; border-top: 1px solid #eef0ed; }
.style-number { color: #9aa79f; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.style-card h2 { margin: 6px 0 8px; font-size: 24px; }
.style-card p { margin: 0; color: #6e7a73; min-height: 66px; }
.style-card ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0; padding: 0; list-style: none; }
.style-card li { padding: 5px 9px; border-radius: 999px; background: #f2f5f2; color: #5f6e66; font-size: 12px; }
.choose-style { width: 100%; border: 1px solid #d4ded8; border-radius: 11px; padding: 13px 16px; background: white; color: #174a37; text-align: left; font-weight: 800; display: flex; justify-content: space-between; align-items: center; transition: .2s; }
.choose-style:hover, .choose-style.primary { border-color: #075f3e; background: #075f3e; color: white; }
.hub-footer { max-width: 1480px; margin: 30px auto 0; display: flex; justify-content: center; gap: 13px; color: #849088; font-size: 12px; }

/* 原型框架与预览工具 */
.prototype-view { position: fixed; inset: 0; background: #dfe4e1; z-index: 10; overflow: hidden; }
.preview-bar { height: 62px; padding: 0 18px; background: #18231e; color: white; display: flex; align-items: center; gap: 20px; position: relative; z-index: 40; box-shadow: 0 3px 12px rgba(0,0,0,.2); }
.preview-bar button { border: 0; }
.preview-back { padding: 9px 12px; color: rgba(255,255,255,.78); background: transparent; border-radius: 8px; }
.preview-back:hover { background: rgba(255,255,255,.1); color: white; }
.preview-theme { display: flex; align-items: center; gap: 9px; }
.preview-label { color: rgba(255,255,255,.55); font-size: 12px; }
.theme-dots { display: flex; gap: 6px; margin-left: 6px; }
.theme-dots button { width: 13px; height: 13px; padding: 0; border-radius: 50%; background: #075f3e; box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); opacity: .6; }
.theme-dots button:nth-child(2){background:#153e35}.theme-dots button:nth-child(3){background:#7fbca0}.theme-dots button:nth-child(4){background:#f0b323}.theme-dots button:nth-child(5){background:#f5f5f5}
.theme-dots button.is-active { outline: 2px solid white; outline-offset: 2px; opacity: 1; }
.device-switch { margin-left: auto; display: flex; background: rgba(255,255,255,.1); border-radius: 9px; padding: 3px; }
.device-switch button { padding: 7px 12px; background: transparent; color: rgba(255,255,255,.65); border-radius: 7px; font-size: 12px; }
.device-switch button.is-active { background: white; color: #17241e; }
.approve-button { padding: 9px 14px; border-radius: 9px; background: #f1bd5c; color: #3c2a0d; font-weight: 800; }
.approve-button.is-liked { background: #fff; color: #b94049; }
.stage { height: calc(100vh - 62px); display: flex; justify-content: center; align-items: stretch; overflow: hidden; background: radial-gradient(circle at 50% -20%, #f4f6f5, #d6ddda 70%); }
.app-frame { width: 100%; height: 100%; overflow: hidden; background: var(--bg); transition: width .28s ease, height .28s ease, border-radius .28s ease; position: relative; }
.app-frame.is-mobile { width: 390px; height: min(820px, calc(100vh - 92px)); margin: 15px 0; border-radius: 28px; box-shadow: 0 18px 55px rgba(10,28,20,.3); border: 7px solid #1d2421; }

/* 登录 */
.login-screen { min-height: 100%; display: grid; grid-template-columns: minmax(390px, 44%) 1fr; background: var(--surface); overflow: auto; }
.login-brand-panel { color: white; background:
  radial-gradient(circle at 85% 15%, rgba(255,255,255,.13), transparent 25%),
  linear-gradient(145deg, var(--sidebar), var(--brand-2)); padding: clamp(45px, 7vw, 100px); display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.login-brand-panel::after { content:""; position: absolute; width: 340px; height: 340px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; left: -190px; bottom: -100px; }
.login-logo { width: 92px; height: 92px; margin-bottom: 26px; box-shadow: 0 15px 30px rgba(0,0,0,.15); }
.login-kicker { margin: 0 0 5px; color: rgba(255,255,255,.58); font-size: 11px; letter-spacing: .28em; }
.login-brand-panel h2 { margin: 0; font-size: clamp(48px, 6vw, 82px); letter-spacing: -.06em; }
.login-brand-panel > div > p:last-child { max-width: 430px; margin: 14px 0 0; color: rgba(255,255,255,.72); font-size: 18px; }
.login-feature-list { display: grid; gap: 13px; margin-top: 56px; }
.login-feature-list span { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.78); }
.login-feature-list b { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: rgba(255,255,255,.12); font-size: 11px; }
.login-action-panel { display: grid; place-items: center; padding: 50px; background: var(--surface); }
.login-box { width: min(480px, 100%); }
.login-box h1 { margin: 0; font-size: 40px; letter-spacing: -.04em; }
.login-tip { margin: 9px 0 20px; color: var(--muted); }
.login-method { width: 100%; display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 13px; text-align: left; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-sm); padding: 15px; margin: 10px 0; transition: .18s; }
.login-method:hover { border-color: var(--brand); transform: translateX(4px); box-shadow: var(--shadow-soft); }
.method-icon { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; color: white; font-weight: 800; background: var(--brand); }
.login-method.wechat .method-icon { background: #11a45d; }.login-method.account .method-icon { background: #4b5d54; }.login-method.employee .method-icon{background:#42715d}
.login-method strong, .login-method small { display: block; }.login-method small { margin-top: 2px; color: var(--muted); }.login-method i { font-style: normal; color: var(--muted); }
.safe-note { margin-top: 18px; color: var(--muted); font-size: 12px; display: flex; gap: 7px; justify-content: center; }.safe-note span { color: var(--brand); }
.login-section{padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.login-section--real{border-color:color-mix(in srgb,#178b5a 45%,var(--line));background:linear-gradient(145deg,#f3fbf6,var(--surface))}.login-section-title{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center}.login-section-title>div strong,.login-section-title>div small{display:block}.login-section-title>div strong{font-size:13px}.login-section-title>div small{margin-top:2px;color:var(--muted);font-size:10px}.login-section-title em{padding:4px 7px;border-radius:99px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-style:normal;font-weight:800}.login-step{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:11px;font-weight:800}.login-method--primary{min-height:64px!important;border-color:#168557!important;background:#07864f!important;color:#fff!important;box-shadow:0 9px 22px rgba(7,134,79,.18)}.login-method--primary:hover{border-color:#056e41!important;background:#087747!important}.login-method--primary small,.login-method--primary i{color:rgba(255,255,255,.78)}.login-method--primary .method-icon{background:rgba(255,255,255,.17)}.login-method--primary:disabled{cursor:wait;opacity:.72;transform:none}.login-divider{height:28px;display:flex;align-items:center;justify-content:center;position:relative}.login-divider::before{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line)}.login-divider span{position:relative;padding:0 10px;background:var(--surface);color:var(--muted);font-size:10px}.demo-login-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.demo-login-grid .login-method{min-height:62px;margin:0;padding:10px;grid-template-columns:38px 1fr auto}.demo-login-grid .method-icon{width:36px;height:36px;border-radius:10px}.demo-login-grid .login-method:last-child{grid-column:1/-1}.wecom-login-status{margin-top:9px;padding:11px 12px;display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:center;border-radius:10px;background:#e7f4ec;color:#186242}.wecom-login-status>span{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:#fff;font-weight:900}.wecom-login-status strong,.wecom-login-status small{display:block}.wecom-login-status strong{font-size:11px}.wecom-login-status small{margin-top:2px;font-size:10px;line-height:1.45}.wecom-login-status.is-error{background:#fff0ef;color:#8f2f2b}.wecom-login-status.is-warning{background:#fff6df;color:#80540d}.wecom-login-status.is-success{background:#e7f4ec;color:#186242}.safe-note>span{font-weight:900}

/* 系统主体 */
.app-shell { height: 100%; display: flex; overflow: hidden; background: var(--bg); }
.sidebar { width: 238px; flex: 0 0 238px; color: var(--sidebar-text); background: var(--sidebar); display: flex; flex-direction: column; padding: 20px 14px 18px; overflow-y: auto; }
.sidebar-brand { display: flex; align-items: center; gap: 11px; padding: 3px 10px 24px; color: white; }
.sidebar-brand strong, .sidebar-brand small { display: block; }.sidebar-brand strong { font-size: 21px; letter-spacing: .02em; }.sidebar-brand small { margin-top: -2px; color: var(--sidebar-text); font-size: 11px; }
.side-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-item { min-height: 44px; width: 100%; border: 0; border-radius: 10px; background: transparent; color: var(--sidebar-text); padding: 10px 12px; display: grid; grid-template-columns: 25px 1fr auto; align-items: center; gap: 6px; text-align: left; }
.nav-item span { font-size: 18px; text-align: center; }.nav-item b { font-weight: 600; }.nav-item em { min-width: 20px; height: 20px; padding: 0 5px; display: grid; place-items: center; background: rgba(255,255,255,.13); border-radius: 99px; font-style: normal; font-size: 11px; }
.nav-item:hover, .nav-item.is-active { color: white; background: var(--sidebar-active); }
.nav-divider { padding: 18px 12px 7px; font-size: 10px; letter-spacing: .14em; color: var(--sidebar-text); opacity: .55; }
.sidebar-help { margin-top: auto; padding: 13px; border-radius: 11px; background: rgba(255,255,255,.07); display: flex; gap: 9px; align-items: center; }
.sidebar-help > span { width: 29px; height: 29px; border-radius: 50%; background: rgba(255,255,255,.12); display: grid; place-items: center; color: white; }.sidebar-help strong,.sidebar-help small{display:block}.sidebar-help strong{color:white;font-size:12px}.sidebar-help small{font-size:10px;margin-top:2px}
.app-main { flex: 1; min-width: 0; height: 100%; overflow: hidden; display: flex; flex-direction: column; position: relative; }
.role-preview-banner { min-height: 36px; padding: 6px 17px; background: #fff0c9; color: #5a3e07; border-bottom: 1px solid #ebd08c; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; }
.role-preview-banner small { color: #846b36; margin-left: 6px; }.role-preview-banner button { margin-left: 8px; border: 0; background: #5d450d; color: white; border-radius: 5px; padding: 3px 8px; }
.topbar { height: 72px; flex: 0 0 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 26px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, transparent); }
.topbar-left { display: flex; align-items: center; gap: 11px; }.breadcrumb small,.breadcrumb strong { display:block; }.breadcrumb small { color:var(--muted);font-size:10px;margin-bottom:2px}.breadcrumb strong{font-size:18px}
.mobile-menu { display: none; border: 0; background: transparent; font-size: 22px; }
.topbar-actions { display:flex;align-items:center;gap:10px }.global-search { width: clamp(190px, 20vw, 300px); height: 39px; display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted)}.global-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}
.icon-button { width:39px;height:39px;border:1px solid var(--line);border-radius:10px;background:var(--surface);position:relative }.icon-button em{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;border-radius:99px;background:var(--danger);color:white;display:grid;place-items:center;font-size:9px;font-style:normal}
.role-button { border:0;background:transparent;padding:4px 6px;display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;text-align:left;border-radius:9px }.role-button:hover{background:var(--surface-2)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800;flex:0 0 auto}.role-button strong,.role-button small{display:block}.role-button strong{font-size:12px}.role-button small{color:var(--muted);font-size:9px;margin-top:1px}.role-button i{font-style:normal;color:var(--muted)}
.content { flex:1;overflow-y:auto;padding:28px clamp(20px,3vw,40px) 50px;scroll-behavior:smooth }.page{display:none;max-width:var(--content-width);margin:0 auto}.page.is-active{display:block;animation:pageIn .25s ease}@keyframes pageIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-heading { display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px }.page-heading h1{margin:0;font-size:30px;letter-spacing:-.035em}.page-heading p:last-child{margin:6px 0 0;color:var(--muted);font-size:13px}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}
.button { min-height:40px;padding:9px 15px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:13px }a.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.button.primary{border-color:var(--brand);background:var(--brand);color:white}.button.primary:hover{background:var(--brand-2)}.button.secondary{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.button.ghost{background:transparent}.text-button{border:0;background:transparent;color:var(--brand-2);font-weight:700;font-size:12px}.tool-button{min-height:35px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px}.tool-button:hover{border-color:var(--brand);color:var(--brand)}.more-button{border:0;background:transparent;color:var(--muted);font-weight:800}

/* 首页 */
.welcome-card { min-height: 220px; display:flex;align-items:center;justify-content:space-between;gap:30px;padding:34px 40px;border-radius:var(--radius);background:linear-gradient(120deg,var(--surface),var(--brand-soft));border:1px solid color-mix(in srgb,var(--brand) 12%,var(--line));box-shadow:var(--shadow);position:relative;overflow:hidden }.welcome-card::after{content:"";position:absolute;right:-80px;top:-160px;width:360px;height:360px;border-radius:50%;border:1px solid color-mix(in srgb,var(--brand) 12%,transparent)}.welcome-card h1{margin:0;font-size:34px;letter-spacing:-.04em}.welcome-card p:not(.eyebrow){margin:9px 0 0;color:var(--muted)}.welcome-actions{display:flex;gap:9px;margin-top:24px}
.hero-flower{position:relative;width:190px;height:150px;flex:0 0 190px}.hero-flower i{position:absolute;width:62px;height:88px;border-radius:70% 30% 65% 35%;background:color-mix(in srgb,var(--brand) 18%,white);border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);left:64px;top:25px;transform-origin:50% 90%}.hero-flower i:nth-child(2){transform:rotate(70deg)}.hero-flower i:nth-child(3){transform:rotate(145deg)}.hero-flower i:nth-child(4){transform:rotate(220deg)}.hero-flower b{position:absolute;width:40px;height:40px;border-radius:50%;background:var(--accent);left:75px;top:62px;box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 18%,transparent)}
.quick-section{margin-top:28px}.section-heading,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-heading h2{margin:0;font-size:21px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:13px}.quick-action{min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:15px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;text-align:left;box-shadow:var(--shadow-soft);transition:.18s}.quick-action:hover{transform:translateY(-2px);border-color:var(--brand)}.quick-action>span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.quick-action strong,.quick-action small{display:block}.quick-action strong{font-size:13px}.quick-action small{margin-top:3px;color:var(--muted);font-size:10px}.quick-action i{font-style:normal;color:var(--muted)}.qa-amber>span{background:#fff0d4;color:#a8660c}.qa-blue>span{background:#e2effa;color:#2f6da5}.qa-purple>span{background:#eee8f9;color:#7055a5}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:18px}.metric-card{min-width:0;display:flex;align-items:center;gap:13px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft)}.metric-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;font-weight:800;background:var(--brand-soft);color:var(--brand)}.metric-icon.orange{background:#fff0d9;color:#ad6b12}.metric-icon.blue{background:#e6f1fa;color:#2e71a9}.metric-icon.purple{background:#eee8f8;color:#7257a7}.metric-card>div:last-child{min-width:0}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{color:var(--muted);font-size:11px}.metric-card strong{font-size:25px;line-height:1.15;margin:3px 0}.metric-card small{color:var(--muted);font-size:9px}.metric-card small.up{color:var(--brand-2)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:16px;margin-top:18px}.panel,.list-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.panel{padding:20px}.panel-head h3{margin:0;font-size:16px}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.todo-list{margin:13px -8px -5px}.todo-item{width:100%;border:0;background:transparent;padding:11px 8px;border-radius:10px;display:grid;grid-template-columns:37px 1fr auto;align-items:center;gap:11px;text-align:left}.todo-item:hover{background:var(--surface-2)}.todo-status{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#fee9e7;color:var(--danger);font-weight:800}.todo-status.dispatch{background:#e5eff9;color:#3f74a4}.todo-status.stock{background:#e3f2e9;color:var(--brand)}.todo-status.normal{background:#eee9f8;color:var(--purple)}.todo-item strong,.todo-item small{display:block}.todo-item strong{font-size:12px}.todo-item small{margin-top:3px;color:var(--muted);font-size:10px}.todo-item time{font-size:10px;color:var(--muted)}
.ring-wrap{display:grid;place-items:center;padding:18px 0 12px}.progress-ring{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--brand) 0 86%,var(--brand-soft) 86%);position:relative}.progress-ring::before{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--surface)}.progress-ring span{position:relative;text-align:center}.progress-ring strong,.progress-ring small{display:block}.progress-ring strong{font-size:25px}.progress-ring small{font-size:9px;color:var(--muted)}.progress-legend{display:flex;justify-content:center;gap:13px;flex-wrap:wrap;font-size:9px;color:var(--muted)}.progress-legend span{display:flex;align-items:center;gap:4px}.progress-legend i{width:7px;height:7px;border-radius:50%;background:var(--brand)}.progress-legend i.wait{background:#e1af4a}.progress-legend i.late{background:var(--danger)}.progress-legend b{color:var(--text)}

/* 表格与通用列表 */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.stat-strip>div{padding:17px 22px;border-right:1px solid var(--line)}.stat-strip>div:last-child{border-right:0}.stat-strip span,.stat-strip strong{display:block}.stat-strip span{font-size:10px;color:var(--muted)}.stat-strip strong{font-size:25px;margin-top:2px}
.list-panel{overflow:hidden}.list-tools{min-height:62px;padding:12px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.table-search{height:36px;min-width:240px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted)}.table-search input{width:100%;border:0;background:transparent;outline:0;font-size:11px;color:var(--text)}.list-tools select{height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 28px 0 9px;color:var(--text);font-size:11px}.tools-spacer{flex:1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:850px}th{padding:11px 14px;background:var(--surface-2);color:var(--muted);font-size:10px;text-align:left;font-weight:700;white-space:nowrap}td{padding:13px 14px;border-top:1px solid var(--line);font-size:11px;vertical-align:middle}td strong,td small{display:block}td small{margin-top:3px;color:var(--muted);font-size:9px}tbody tr:hover{background:color-mix(in srgb,var(--brand-soft) 35%,transparent)}.status{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:var(--surface-2);font-size:9px;font-weight:700;white-space:nowrap}.status.success{background:#e1f3e8;color:#1b7852}.status.warning{background:#fff0d4;color:#9c640f}.status.info{background:#e4effa;color:#356f9e}.status.danger{background:#fee7e5;color:#b43e39}.status.purple{background:#eee8f8;color:#7053a4}.row-action{border:0;background:transparent;color:var(--brand-2);font-weight:700;font-size:10px;white-space:nowrap}.line-progress{display:inline-block;width:70px;height:6px;border-radius:99px;background:var(--brand-soft);overflow:hidden}.line-progress i{display:block;height:100%;background:var(--brand);border-radius:99px}.line-progress.danger i{background:var(--danger)}.tag{display:inline-flex;padding:2px 5px;margin-right:3px;border-radius:4px;background:var(--brand-soft);color:var(--brand);font-style:normal;font-size:8px}.urgent-tag{background:#fee5e2;color:var(--danger)}.pagination{min-height:54px;padding:10px 15px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:5px}.pagination span{margin-right:auto;color:var(--muted);font-size:10px}.pagination button{min-width:29px;height:29px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:10px}.pagination button.is-active{background:var(--brand);border-color:var(--brand);color:white}.mobile-card-list{display:none}

/* 假勤 */
.attendance-layout{display:grid;grid-template-columns:320px 1fr;gap:16px}.clock-card{min-height:350px;border-radius:var(--radius);padding:24px;background:linear-gradient(150deg,var(--brand),var(--brand-2));color:white;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center}.clock-top{font-size:10px;color:rgba(255,255,255,.75)}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#72e3aa;box-shadow:0 0 0 4px rgba(114,227,170,.16);margin-right:6px}.clock-card>time{font-size:47px;font-weight:800;letter-spacing:-.05em;margin-top:25px}.clock-card>p{margin:0 0 18px;color:rgba(255,255,255,.65);font-size:11px}.big-clock-button{width:162px;height:162px;border-radius:50%;border:8px solid rgba(255,255,255,.14);background:white;color:var(--brand);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 13px 30px rgba(0,0,0,.18)}.big-clock-button>span{font-size:23px}.big-clock-button strong,.big-clock-button small{display:block}.big-clock-button strong{font-size:17px;margin-top:4px}.big-clock-button small{font-size:9px;margin-top:5px;color:#698078}.clock-note{margin-top:auto;font-size:9px;color:rgba(255,255,255,.7)}.schedule-card{padding:24px}.week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:23px}.week-row button{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:11px 4px;display:flex;flex-direction:column;gap:4px;align-items:center}.week-row small{color:var(--muted);font-size:9px}.week-row b{font-size:14px}.week-row em{font-style:normal;font-size:9px;color:var(--brand)}.week-row button.today{background:var(--brand);border-color:var(--brand);color:white}.week-row button.today small,.week-row button.today em{color:white}.schedule-detail{margin-top:24px;padding:17px;border-radius:12px;background:var(--surface-2)}.schedule-detail span,.schedule-detail strong,.schedule-detail small{display:block}.schedule-detail span{color:var(--muted);font-size:10px}.schedule-detail strong{font-size:17px;margin:4px 0}.schedule-detail small{color:var(--muted);font-size:10px}.request-panel{margin-top:16px}.request-row{display:grid;grid-template-columns:40px 1fr auto auto;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.request-icon{width:38px;height:38px;border-radius:10px;background:#fff0d7;color:#a8670f;display:grid;place-items:center;font-weight:800}.request-icon.fix{background:#e5effa;color:#3671a3}.request-row strong,.request-row small{display:block}.request-row strong{font-size:12px}.request-row small{font-size:9px;color:var(--muted);margin-top:3px}

/* 派车、调度与容器 */
.dispatch-alert{display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:12px;padding:14px 16px;margin-bottom:14px;border:1px solid #efd39f;border-radius:var(--radius-sm);background:#fff7e4}.dispatch-alert>span{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#d74b43;color:white;font-weight:800}.dispatch-alert strong,.dispatch-alert small{display:block}.dispatch-alert strong{font-size:13px}.dispatch-alert small{margin-top:3px;color:#816936;font-size:10px}.dispatch-alert button{border:0;border-radius:8px;background:#6d4d10;color:white;padding:8px 12px;font-weight:700;font-size:11px}
.queue-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(440px,1.3fr);gap:16px}.live-label{font-size:9px;color:var(--brand);display:flex;align-items:center;gap:5px}.live-label i{width:7px;height:7px;border-radius:50%;background:#2bb878;box-shadow:0 0 0 4px rgba(43,184,120,.15)}.pool-order{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:13px;text-align:left;margin-top:9px}.pool-order:hover,.pool-order.is-selected{border-color:var(--brand);background:var(--brand-soft)}.priority-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#fee3e1;color:var(--danger);font-weight:800}.priority-mark.normal{background:#e2f2e8;color:var(--brand)}.priority-mark.reserve{background:#eee8f8;color:var(--purple)}.pool-order strong,.pool-order p,.pool-order small{display:block;margin:0}.pool-order strong{font-size:11px}.pool-order p{font-size:10px;margin:3px 0}.pool-order small{color:var(--muted);font-size:9px}.ai-head{display:flex;align-items:center;gap:12px;padding-bottom:15px;border-bottom:1px solid var(--line)}.ai-head>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,var(--brand),#5d4fa6);color:white;font-weight:800}.ai-head h3,.ai-head p{margin:0}.ai-head h3{font-size:16px}.ai-head p{font-size:10px;color:var(--muted);margin-top:3px}.driver-choice{display:grid;grid-template-columns:39px 1fr auto;gap:11px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line)}.driver-choice.best{background:linear-gradient(90deg,var(--brand-soft),transparent);margin:12px -8px 0;padding:14px 12px;border-radius:10px;border-bottom:0}.driver-choice strong,.driver-choice p,.driver-choice small{display:block;margin:0}.driver-choice strong{font-size:12px}.driver-choice strong em{font-style:normal;font-size:8px;color:white;background:var(--brand);border-radius:99px;padding:3px 6px}.driver-choice p{font-size:9px;margin-top:3px;color:var(--muted)}.driver-choice small{font-size:9px;margin-top:4px;color:var(--brand)}.driver-choice button,.handover-card button,.candidate button{border:1px solid var(--brand);border-radius:7px;background:var(--brand);color:white;padding:7px 9px;font-size:10px;font-weight:700}.ai-note{margin-top:15px;padding:11px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:9px}.container-metrics{margin-top:0;margin-bottom:16px}.containers-grid{grid-template-columns:1.1fr .9fr}.stock-list{margin-top:13px}.stock-list>div{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center;padding:12px 4px;border-top:1px solid var(--line);font-size:11px}.stock-list b{color:var(--brand)}.stock-list em{font-style:normal;color:var(--muted)}.handover-card{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.handover-card strong,.handover-card p,.handover-card small{display:block;margin:0}.handover-card strong{font-size:11px}.handover-card p{font-size:10px;margin-top:2px}.handover-card small{font-size:9px;color:var(--muted);margin-top:2px}.handover-card.mismatch{background:#fff8e8;margin:0 -10px;padding:13px 10px;border-radius:9px}

/* 人事、兼职、绩效、设置 */
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.module-grid button{min-height:100px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:16px;display:grid;grid-template-columns:41px 1fr;grid-template-rows:auto auto;column-gap:11px;text-align:left;box-shadow:var(--shadow-soft)}.module-grid button>span{grid-row:1/3;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.module-grid strong{font-size:13px}.module-grid small{color:var(--muted);font-size:9px}.people-simple{padding:3px 16px}.people-simple>div{display:grid;grid-template-columns:38px 1fr auto auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.people-simple>div:last-child{border-bottom:0}.people-simple p{margin:0}.people-simple strong,.people-simple small{display:block}.people-simple strong{font-size:12px}.people-simple small{color:var(--muted);font-size:9px;margin-top:3px}
.parttime-hero{display:grid;grid-template-columns:1.6fr .6fr;gap:16px;margin-bottom:16px}.parttime-hero>div{border-radius:var(--radius);padding:24px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:white}.parttime-hero h2{margin:12px 0 4px;font-size:25px}.parttime-hero p{margin:0;color:rgba(255,255,255,.72)}.parttime-hero>div>div{display:flex;gap:20px;margin:19px 0}.parttime-hero b{font-size:11px}.parttime-hero button{border:0;border-radius:9px;padding:10px 20px;background:white;color:var(--brand);font-weight:800}.parttime-hero .credit-card{background:var(--surface);border:1px solid var(--line);color:var(--text);display:flex;flex-direction:column;justify-content:center}.credit-card small{color:var(--muted)}.credit-card strong{font-size:53px;color:var(--brand);line-height:1}.credit-card p{color:var(--muted);font-size:10px;margin-top:10px}.candidate{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.candidate strong,.candidate small{display:block}.candidate strong{font-size:11px}.candidate small{color:var(--muted);font-size:9px;margin-top:3px}.parttime-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.parttime-stats span{padding:13px;border-radius:10px;background:var(--surface-2)}.parttime-stats small,.parttime-stats strong{display:block}.parttime-stats small{color:var(--muted);font-size:9px}.parttime-stats strong{font-size:18px;margin-top:4px}
.performance-summary{display:grid;grid-template-columns:.7fr 1.3fr;gap:16px;margin-bottom:16px}.performance-summary>div{padding:24px;border-radius:var(--radius);background:linear-gradient(135deg,var(--brand),var(--brand-2));color:white}.performance-summary p{margin:0;color:rgba(255,255,255,.72)}.performance-summary>div>strong{font-size:50px;line-height:1.1;margin-right:12px}.performance-summary>div>strong small{font-size:14px}.formula-box{background:var(--surface)!important;border:1px solid var(--line);color:var(--text)!important}.formula-box small,.formula-box strong,.formula-box p{display:block}.formula-box small{color:var(--muted)}.formula-box strong{font-size:28px;margin:4px 0}.formula-box p{color:var(--muted);font-size:10px}.formula-box button{border:0;background:transparent;color:var(--brand);font-size:10px;font-weight:700;padding:0;margin-top:8px}.score-panel{padding:19px}.score-row{display:grid;grid-template-columns:1.2fr 1fr 80px 80px;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line);font-size:10px}.score-row:first-of-type{margin-top:12px}.score-row strong,.score-row small{display:block}.score-row strong{font-size:11px}.score-row small{color:var(--muted);font-size:8px;margin-top:3px}.score-row>b{font-size:15px;color:var(--brand)}.score-row>em{font-style:normal;color:var(--muted)}
.settings-layout{display:grid;grid-template-columns:170px 1fr;gap:16px}.settings-nav{display:flex;flex-direction:column;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);height:max-content}.settings-nav button{border:0;background:transparent;border-radius:8px;padding:11px 12px;text-align:left;font-size:11px}.settings-nav button.is-active{background:var(--brand-soft);color:var(--brand);font-weight:800}.settings-content{min-width:0}.integration-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.integration-cards article{display:grid;grid-template-columns:45px 1fr auto;gap:11px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-soft)}.system-badge{width:43px;height:43px;border-radius:12px;background:#1550a0;color:white;display:grid;place-items:center;font-weight:800}.system-badge.haiding{background:#2769b4}.wecom-badge{background:#1f9862}.integration-cards strong,.integration-cards small{display:block}.integration-cards strong{font-size:12px}.integration-cards small{font-size:9px;color:var(--muted);margin-top:3px}.integration-cards article>button{grid-column:2/4;width:max-content;border:0;background:transparent;color:var(--brand);font-size:10px;font-weight:700;padding:0}.sync-panel,.parameter-panel{margin-bottom:14px}.sync-row{display:grid;grid-template-columns:36px 1fr auto auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.sync-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e3f2e9;color:var(--brand);font-weight:800}.sync-icon.warning{background:#fff0d5;color:var(--warning)}.sync-row strong,.sync-row small{display:block}.sync-row strong{font-size:11px}.sync-row small{font-size:9px;color:var(--muted);margin-top:3px}.parameter-row{display:grid;grid-template-columns:1fr auto auto;gap:13px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.parameter-row strong,.parameter-row small{display:block}.parameter-row strong{font-size:11px}.parameter-row small{font-size:9px;color:var(--muted);margin-top:3px}.parameter-row>span{font-size:9px;color:var(--muted)}.parameter-row>button{border:0;background:transparent;color:var(--brand);font-size:10px}.toggle{width:37px;height:21px;border-radius:99px;background:#cfd7d2;padding:3px;display:block}.toggle i{display:block;width:15px;height:15px;border-radius:50%;background:white}.toggle.is-on{background:var(--brand)}.toggle.is-on i{margin-left:16px}

/* 弹窗、表单与提示 */
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,28,21,.58);display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px)}.modal{width:min(720px,100%);max-height:min(850px,92vh);overflow:auto;border-radius:18px;background:var(--surface);box-shadow:0 24px 80px rgba(0,0,0,.25)}.modal-head{padding:22px 24px 17px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.modal-head h2,.modal-head p{margin:0}.modal-head h2{font-size:23px}.modal-head p:last-child{color:var(--muted);font-size:11px;margin-top:4px}.modal-close{width:34px;height:34px;border:0;border-radius:50%;background:var(--surface-2);font-size:22px;color:var(--muted)}.role-grid{padding:18px 24px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-grid button{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:13px;display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;text-align:left}.role-grid button:hover{border-color:var(--brand);background:var(--brand-soft)}.role-icon{width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:800}.role-grid strong,.role-grid small{display:block}.role-grid strong{font-size:12px}.role-grid small{font-size:9px;color:var(--muted);margin-top:3px}.role-grid i{font-style:normal;color:var(--brand)}.modal-foot{padding:12px 24px;border-top:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-size:10px}.modal-actions{padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:0;background:var(--surface)}.stepper{display:flex;padding:17px 24px;border-bottom:1px solid var(--line)}.stepper span{flex:1;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;position:relative}.stepper span:not(:last-child)::after{content:"";height:1px;background:var(--line);position:absolute;left:68px;right:10px}.stepper i{width:24px;height:24px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-style:normal;font-weight:800}.stepper .is-active{color:var(--brand)}.stepper .is-active i{background:var(--brand);color:white}.form-content{padding:22px 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:700}.field label em{color:var(--danger);font-style:normal}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px 11px;color:var(--text);font-size:12px}.field textarea{min-height:82px;resize:vertical}.field small{color:var(--muted);font-size:9px}.auto-result{grid-column:1/-1;padding:14px;border-radius:10px;background:var(--brand-soft);display:flex;justify-content:space-between;gap:10px}.auto-result span,.auto-result strong{display:block}.auto-result span{font-size:10px;color:var(--muted)}.auto-result strong{font-size:18px;color:var(--brand)}.review-box{display:grid;gap:10px}.review-row{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.review-row span{color:var(--muted)}.success-finish{text-align:center;padding:22px}.success-finish>span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 13px;background:var(--brand-soft);color:var(--brand);font-size:28px}.success-finish h3{margin:0}.success-finish p{color:var(--muted)}
.import-steps{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 24px;gap:6px}.import-steps span{padding:7px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:9px;text-align:center}.import-steps .is-done{background:var(--brand-soft);color:var(--brand)}.import-steps .is-active{background:var(--brand);color:white}.upload-zone{width:calc(100% - 48px);margin:8px 24px 20px;min-height:150px;border:2px dashed var(--line);border-radius:13px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-zone:hover{border-color:var(--brand)}.upload-zone>span{font-size:30px;color:var(--brand)}.upload-zone strong,.upload-zone small{display:block}.upload-zone small{color:var(--muted);font-size:10px;margin-top:5px}.import-result{margin:0 24px 20px}.result-summary{display:flex;gap:12px;margin-bottom:10px}.result-summary span{padding:10px 13px;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-size:10px}.result-summary b{font-size:16px}.result-summary .has-error{background:#fee9e6;color:var(--danger)}.error-line{display:grid;grid-template-columns:65px 1fr auto;gap:10px;align-items:center;padding:10px;border-top:1px solid var(--line);font-size:10px}.error-line button{border:0;background:transparent;color:var(--danger);font-size:9px}.detail-content{padding:22px 24px}.detail-step{display:flex;gap:10px;padding:10px 0}.detail-step>span{width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:800;flex:0 0 auto}.detail-step strong,.detail-step small{display:block}.detail-step strong{font-size:11px}.detail-step small{font-size:9px;color:var(--muted);margin-top:3px}.detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.detail-summary>div{padding:12px;border-radius:9px;background:var(--surface-2)}.detail-summary span,.detail-summary strong{display:block}.detail-summary span{font-size:9px;color:var(--muted)}.detail-summary strong{font-size:12px;margin-top:3px}
.toast-stack{position:fixed;z-index:200;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px}.toast{min-width:270px;max-width:390px;padding:13px 15px;border-radius:11px;background:#17241e;color:white;box-shadow:0 12px 35px rgba(0,0,0,.25);display:flex;align-items:flex-start;gap:9px;animation:toastIn .2s ease}.toast>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#2a9f6e;flex:0 0 auto}.toast strong,.toast small{display:block}.toast strong{font-size:11px}.toast small{margin-top:2px;color:rgba(255,255,255,.65);font-size:9px}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mobile-bottom{display:none}

/* 主题的结构差异 */
body[data-theme="business"] .content{padding-top:22px}body[data-theme="business"] .welcome-card{min-height:190px;background:var(--surface)}body[data-theme="business"] .quick-section{display:none}body[data-theme="business"] .metric-grid{margin-top:14px}body[data-theme="business"] .panel,body[data-theme="business"] .list-panel,body[data-theme="business"] .metric-card{box-shadow:none}body[data-theme="business"] th{background:#e7eeeb;color:#40534c}body[data-theme="business"] td{padding-top:11px;padding-bottom:11px}
body[data-theme="soft"] .sidebar{border-right:1px solid var(--line)}body[data-theme="soft"] .sidebar-brand,body[data-theme="soft"] .nav-item.is-active,body[data-theme="soft"] .nav-item:hover{color:var(--brand)}body[data-theme="soft"] .sidebar-brand small,body[data-theme="soft"] .sidebar-help{color:var(--muted)}body[data-theme="soft"] .sidebar-help{background:var(--surface-2)}body[data-theme="soft"] .sidebar-help strong{color:var(--text)}body[data-theme="soft"] .nav-item em{background:var(--brand-soft)}body[data-theme="soft"] .welcome-card{background:linear-gradient(135deg,#fffdfb,#e2f2e8)}body[data-theme="soft"] .quick-action>span,body[data-theme="soft"] .metric-icon{border-radius:16px}
body[data-theme="contrast"] .nav-item.is-active{color:#102219}body[data-theme="contrast"] .nav-item{min-height:50px}body[data-theme="contrast"] .sidebar{width:255px;flex-basis:255px}body[data-theme="contrast"] .topbar{height:78px;flex-basis:78px}body[data-theme="contrast"] .quick-action{min-height:82px;border-width:2px}body[data-theme="contrast"] .quick-action strong{font-size:15px}body[data-theme="contrast"] .metric-card,body[data-theme="contrast"] .panel,body[data-theme="contrast"] .list-panel{border-width:2px}body[data-theme="contrast"] .welcome-card{border:3px solid var(--brand);background:#fff}body[data-theme="contrast"] .button.primary{border:2px solid #003b27;background:#f0b323;color:#13251d}body[data-theme="contrast"] .status{font-size:11px;padding:6px 9px}
body[data-theme="minimal"] .sidebar{border-right:1px solid var(--line)}body[data-theme="minimal"] .sidebar-brand,body[data-theme="minimal"] .nav-item.is-active,body[data-theme="minimal"] .nav-item:hover{color:var(--text)}body[data-theme="minimal"] .sidebar-brand small{color:var(--muted)}body[data-theme="minimal"] .sidebar-brand strong{font-weight:600}body[data-theme="minimal"] .sidebar-help{border:1px solid var(--line);background:white}body[data-theme="minimal"] .sidebar-help strong{color:var(--text)}body[data-theme="minimal"] .welcome-card{background:white;border-width:0 0 1px;border-radius:0;padding-left:0;padding-right:0;box-shadow:none}body[data-theme="minimal"] .hero-flower{opacity:.55}body[data-theme="minimal"] .quick-action,body[data-theme="minimal"] .metric-card{border-width:0 0 1px;padding-left:5px;padding-right:5px}body[data-theme="minimal"] .panel,body[data-theme="minimal"] .list-panel{border-width:1px 0}body[data-theme="minimal"] .button{border-radius:1px}

/* 手机模拟与真实窄屏 */
.app-frame.is-mobile .login-screen{grid-template-columns:1fr;min-height:100%}.app-frame.is-mobile .login-brand-panel{min-height:210px;padding:30px 25px;display:grid;grid-template-columns:65px 1fr;gap:15px;align-content:center}.app-frame.is-mobile .login-logo{width:62px;height:62px;margin:0;grid-row:1/3}.app-frame.is-mobile .login-brand-panel h2{font-size:34px}.app-frame.is-mobile .login-brand-panel>div>p:last-child{font-size:12px;margin-top:3px}.app-frame.is-mobile .login-kicker,.app-frame.is-mobile .login-feature-list{display:none}.app-frame.is-mobile .login-action-panel{padding:25px 18px;display:block}.app-frame.is-mobile .login-box h1{font-size:26px}.app-frame.is-mobile .login-tip{margin-bottom:18px}.app-frame.is-mobile .login-method{grid-template-columns:43px 1fr auto;padding:12px}.app-frame.is-mobile .sidebar{display:none}.app-frame.is-mobile .topbar{height:60px;flex-basis:60px;padding:0 14px}.app-frame.is-mobile .mobile-menu{display:block}.app-frame.is-mobile .global-search,.app-frame.is-mobile .icon-button,.app-frame.is-mobile .role-button small,.app-frame.is-mobile .role-button i{display:none}.app-frame.is-mobile .role-button{grid-template-columns:34px 1fr}.app-frame.is-mobile .content{padding:18px 14px 85px}.app-frame.is-mobile .page-heading{align-items:flex-start;flex-direction:column;margin-bottom:15px}.app-frame.is-mobile .page-heading h1{font-size:24px}.app-frame.is-mobile .page-heading .button{width:100%}.app-frame.is-mobile .heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.app-frame.is-mobile .welcome-card{min-height:210px;padding:24px 20px}.app-frame.is-mobile .welcome-card h1{font-size:26px}.app-frame.is-mobile .hero-flower{position:absolute;right:-60px;bottom:-24px;opacity:.5}.app-frame.is-mobile .welcome-actions{flex-direction:column;align-items:flex-start}.app-frame.is-mobile .quick-section{margin-top:21px}.app-frame.is-mobile .section-heading .text-button{display:none}.app-frame.is-mobile .quick-grid{grid-template-columns:1fr 1fr;gap:9px}.app-frame.is-mobile .quick-action{min-height:108px;grid-template-columns:1fr;padding:13px}.app-frame.is-mobile .quick-action>span{width:38px;height:38px}.app-frame.is-mobile .quick-action i{display:none}.app-frame.is-mobile .metric-grid{grid-template-columns:1fr 1fr;gap:9px}.app-frame.is-mobile .metric-card{padding:13px;align-items:flex-start}.app-frame.is-mobile .metric-icon{width:34px;height:34px;border-radius:10px}.app-frame.is-mobile .metric-card strong{font-size:20px}.app-frame.is-mobile .dashboard-grid,.app-frame.is-mobile .queue-layout,.app-frame.is-mobile .containers-grid,.app-frame.is-mobile .attendance-layout,.app-frame.is-mobile .performance-summary,.app-frame.is-mobile .settings-layout{grid-template-columns:1fr}.app-frame.is-mobile .progress-panel{display:none}.app-frame.is-mobile .todo-item{grid-template-columns:35px 1fr}.app-frame.is-mobile .todo-item time{display:none}.app-frame.is-mobile .stat-strip{grid-template-columns:1fr 1fr}.app-frame.is-mobile .stat-strip>div:nth-child(2){border-right:0}.app-frame.is-mobile .stat-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.app-frame.is-mobile .list-tools{padding:10px}.app-frame.is-mobile .table-search{min-width:100%}.app-frame.is-mobile .tools-spacer{display:none}.app-frame.is-mobile .table-wrap{display:none}.app-frame.is-mobile .mobile-card-list{display:grid;padding:10px;gap:9px}.app-frame.is-mobile .mobile-data-card{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.app-frame.is-mobile .mobile-data-card header{display:flex;justify-content:space-between;gap:9px}.app-frame.is-mobile .mobile-data-card strong,.app-frame.is-mobile .mobile-data-card small{display:block}.app-frame.is-mobile .mobile-data-card strong{font-size:12px}.app-frame.is-mobile .mobile-data-card small{color:var(--muted);font-size:9px;margin-top:3px}.app-frame.is-mobile .mobile-data-card footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.app-frame.is-mobile .pagination{display:none}.app-frame.is-mobile .clock-card{min-height:520px}.app-frame.is-mobile .schedule-card{padding:18px}.app-frame.is-mobile .week-row{gap:3px}.app-frame.is-mobile .week-row button{padding:9px 2px}.app-frame.is-mobile .request-row{grid-template-columns:38px 1fr auto}.app-frame.is-mobile .request-row .row-action{grid-column:2/4;text-align:left}.app-frame.is-mobile .dispatch-alert{grid-template-columns:40px 1fr}.app-frame.is-mobile .dispatch-alert button{grid-column:1/-1}.app-frame.is-mobile .order-pool{display:none}.app-frame.is-mobile .driver-choice{grid-template-columns:38px 1fr}.app-frame.is-mobile .driver-choice button{grid-column:2}.app-frame.is-mobile .module-grid{grid-template-columns:1fr 1fr}.app-frame.is-mobile .module-grid button{grid-template-columns:36px 1fr;padding:12px}.app-frame.is-mobile .people-simple>div{grid-template-columns:34px 1fr auto}.app-frame.is-mobile .people-simple .row-action{grid-column:2/4;text-align:left}.app-frame.is-mobile .parttime-hero{grid-template-columns:1fr}.app-frame.is-mobile .parttime-hero>div>div{flex-direction:column;gap:4px}.app-frame.is-mobile .dashboard-grid{grid-template-columns:1fr}.app-frame.is-mobile .score-row{grid-template-columns:1fr auto}.app-frame.is-mobile .score-row>span{grid-column:1/-1}.app-frame.is-mobile .integration-cards{grid-template-columns:1fr}.app-frame.is-mobile .settings-nav{display:grid;grid-template-columns:1fr 1fr}.app-frame.is-mobile .sync-row{grid-template-columns:34px 1fr auto}.app-frame.is-mobile .sync-row .row-action{grid-column:2/4}.app-frame.is-mobile .parameter-row{grid-template-columns:1fr auto}.app-frame.is-mobile .parameter-row>span{grid-column:1}.app-frame.is-mobile .mobile-bottom{height:67px;display:grid;grid-template-columns:repeat(5,1fr);position:absolute;z-index:30;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.app-frame.is-mobile .mobile-bottom button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative}.app-frame.is-mobile .mobile-bottom button.is-active{color:var(--brand)}.app-frame.is-mobile .mobile-bottom span{font-size:19px}.app-frame.is-mobile .mobile-bottom b{font-size:9px}.app-frame.is-mobile .mobile-bottom em{position:absolute;top:4px;right:22%;min-width:16px;height:16px;border-radius:99px;background:var(--danger);color:white;font-size:8px;font-style:normal;display:grid;place-items:center}.app-frame.is-mobile .role-preview-banner{justify-content:flex-start;overflow:hidden;white-space:nowrap}.app-frame.is-mobile .role-preview-banner small{display:none}

@media (max-width: 1120px){.style-grid{grid-template-columns:repeat(4,1fr)}.style-card{grid-column:span 2}.style-card:nth-child(4){grid-column:span 2}.quick-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}.global-search{display:none}}
@media (max-width: 760px){.style-hub{padding:26px 15px}.hub-header{align-items:flex-start;flex-direction:column}.brand-lockup{align-items:flex-start;gap:15px}.brand-logo--large{width:70px;height:70px}.brand-lockup h1{font-size:31px}.hub-lead{font-size:13px}.prototype-note{width:100%}.style-grid{grid-template-columns:1fr}.style-card,.style-card:nth-child(4){grid-column:1}.mini-app{height:160px}.hub-footer{flex-wrap:wrap}.preview-bar{height:56px;padding:0 9px;gap:7px;justify-content:space-between}.preview-label,.theme-dots,.approve-button,.device-switch{display:none}.preview-back{font-size:11px;padding:7px}.preview-theme strong{font-size:11px}.stage{height:calc(100vh - 56px)}.app-frame{width:100%!important;height:100%!important;margin:0!important;border:0!important;border-radius:0!important}.app-frame:not(.is-mobile){width:100%}.app-frame:not(.is-mobile) .sidebar{display:none}.app-frame:not(.is-mobile) .mobile-menu{display:block}.app-frame:not(.is-mobile) .mobile-bottom{display:grid;grid-template-columns:repeat(5,1fr)}.modal-backdrop{padding:8px}.modal{max-height:96vh;border-radius:14px}.role-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:1}.import-steps{grid-template-columns:1fr 1fr}.modal-head{padding:18px}.form-content,.role-grid{padding:16px}.toast-stack{left:12px;right:12px;bottom:80px}.toast{min-width:0;max-width:none}}

/* 方案 1 深化：多身份、角色测试与跨角色流程 */
.is-role-hidden{display:none!important}

/* 本机真实写入开关与后端提交反馈 */
.live-write-pill{min-height:39px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.live-write-pill i{width:8px;height:8px;border-radius:50%;background:#9aa7a1}.live-write-pill b{font-size:10px}.live-write-pill.is-on{border-color:#dc9b2d;background:#fff7e5;color:#7a4a00}.live-write-pill.is-on i{background:#e39a1f;box-shadow:0 0 0 4px rgba(227,154,31,.14)}.live-write-pill:disabled{cursor:not-allowed;opacity:.58}.live-write-modal{width:min(620px,100%)}.live-write-warning{margin:22px 24px 12px;padding:17px;display:grid;grid-template-columns:42px 1fr;gap:13px;border:1px solid #efc273;border-radius:13px;background:#fff8e8}.live-write-warning>span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#f0a72f;color:#fff;font-size:22px;font-weight:900}.live-write-warning strong{display:block;font-size:15px;color:#714300}.live-write-warning p{margin:5px 0 0;color:#735a32;font-size:11px;line-height:1.65}.live-write-rules{margin:0 24px 22px;padding:0 0 0 19px;color:var(--muted);font-size:11px;line-height:1.9}.button.danger{border-color:#b8443f;background:#b8443f;color:#fff}.button.danger:hover{background:#a53a36}.success-finish.is-real>span{background:#e1f3e8;color:#18764e}.success-finish.is-demo>span{background:#fff0d4;color:#95600d}.success-finish.is-error>span{background:#fee7e5;color:var(--danger)}.success-result-card{margin:16px auto 0;padding:13px 15px;max-width:480px;display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);text-align:left}.success-result-card span{min-width:0}.success-result-card small,.success-result-card strong{display:block}.success-result-card small{color:var(--muted);font-size:10px}.success-result-card strong{margin-top:3px;font-size:13px;overflow-wrap:anywhere}.success-mode-note{margin:13px auto 0;max-width:500px;padding:10px 12px;border-radius:9px;background:var(--surface-2);font-size:10px!important;line-height:1.6}.form-submit-feedback{margin:0 0 14px;padding:12px 14px;border:1px solid #e9aaa6;border-radius:10px;background:#fff0ef;color:#8f2f2b}.form-submit-feedback strong{display:block;font-size:12px}.form-submit-feedback p,.form-submit-feedback small{display:block;margin:4px 0 0;font-size:10px;line-height:1.55}.form-submit-feedback small{color:#a64e49}.backend-sync-meta #liveWriteModeSummary{padding-left:12px;border-left:1px solid var(--line)}

.app-frame.is-mobile .live-write-pill{min-width:66px;padding:0 8px;justify-content:center}.app-frame.is-mobile .live-write-pill span{display:none}.app-frame.is-mobile .success-result-card{grid-template-columns:1fr}.app-frame.is-mobile .live-write-warning{margin:16px;grid-template-columns:34px 1fr;padding:13px}.app-frame.is-mobile .live-write-warning>span{width:32px;height:32px;border-radius:9px;font-size:17px}.app-frame.is-mobile .live-write-rules{margin:0 16px 16px}.app-frame.is-mobile .backend-sync-meta #liveWriteModeSummary{padding-left:0;border-left:0}
.app-frame.is-mobile .login-section{padding:12px}.app-frame.is-mobile .login-section-title{grid-template-columns:27px 1fr auto}.app-frame.is-mobile .login-section-title em{font-size:8px}.app-frame.is-mobile .login-method--primary{min-height:68px!important;padding:12px}.app-frame.is-mobile .demo-login-grid{grid-template-columns:1fr}.app-frame.is-mobile .demo-login-grid .login-method:last-child{grid-column:auto}.app-frame.is-mobile .demo-login-grid .login-method{min-height:58px}.app-frame.is-mobile .wecom-login-status{padding:10px}.app-frame.is-mobile .safe-note{justify-content:flex-start;text-align:left;line-height:1.5}
.progress-ring{background:conic-gradient(var(--brand) 0 calc(var(--progress,86) * 1%),var(--brand-soft) calc(var(--progress,86) * 1%) 100%)}
.role-preview-banner strong{font-size:13px}.role-preview-banner button{min-height:30px;font-weight:700;cursor:pointer}
.is-readonly-preview .role-preview-banner{background:#fff0c9}.is-readonly-preview [data-form],.is-readonly-preview [data-import],.is-readonly-preview [data-action]{cursor:not-allowed}

.identity-panel{display:grid;grid-template-columns:minmax(250px,1fr) minmax(360px,1.35fr) auto;gap:20px;align-items:center;padding:22px;margin-bottom:26px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));border-radius:var(--radius);background:linear-gradient(135deg,var(--surface),var(--brand-soft));box-shadow:var(--shadow-soft)}
.engineering-status-panel{padding:20px;margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.engineering-status-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.engineering-status-head small{color:var(--brand);font-weight:800}.engineering-status-head h2{margin:3px 0 0;font-size:20px}.engineering-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.engineering-status-grid>div{min-width:0;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;padding:12px;border-radius:11px;background:var(--surface-2)}.engineering-status-grid>div>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.engineering-status-grid p{min-width:0;margin:0}.engineering-status-grid strong,.engineering-status-grid small{display:block}.engineering-status-grid strong{font-size:12px}.engineering-status-grid small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}.engineering-status-grid em{grid-column:2;justify-self:start;font-style:normal}.engineering-status-note{margin:12px 0 0;color:var(--muted);font-size:11px}
.backend-sync-panel{padding:20px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:var(--radius);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--brand-soft) 45%,var(--surface)));box-shadow:var(--shadow-soft)}.backend-sync-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.backend-sync-head>div:first-child{max-width:610px}.backend-sync-head small{color:var(--brand);font-weight:800}.backend-sync-head h2{margin:3px 0 5px;font-size:20px}.backend-sync-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.backend-sync-actions{display:flex;align-items:flex-end;gap:9px}.backend-sync-actions label{display:grid;gap:5px}.backend-sync-actions label span{color:var(--muted);font-size:10px;font-weight:700}.backend-sync-actions select{min-width:150px;min-height:42px;padding:0 34px 0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit}.backend-sync-actions .button{white-space:nowrap}.backend-sync-meta{display:flex;align-items:center;gap:12px;margin-top:15px;padding:10px 12px;border-radius:10px;background:var(--surface)}.backend-sync-meta strong,.backend-sync-meta time{font-size:10px;font-weight:600;color:var(--muted)}.backend-sync-meta time{margin-left:auto}.backend-connection{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.backend-connection i{width:8px;height:8px;border-radius:50%;background:#9aa7a1}.backend-connection.is-online{color:var(--brand)}.backend-connection.is-online i{background:#2a9f6e;box-shadow:0 0 0 4px color-mix(in srgb,#2a9f6e 13%,transparent)}.backend-connection.is-offline{color:var(--danger)}.backend-connection.is-offline i{background:var(--danger)}.backend-connection.is-loading i{background:#e6a225;animation:backendPulse .8s ease infinite alternate}@keyframes backendPulse{to{opacity:.35}}.backend-real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.backend-real-grid>div{min-width:0;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.backend-stat-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.backend-real-grid p{min-width:0;margin:0}.backend-real-grid small,.backend-real-grid strong,.backend-real-grid em{display:block}.backend-real-grid small{color:var(--muted);font-size:10px}.backend-real-grid strong{margin-top:2px;font-size:21px}.backend-real-grid em{margin-top:2px;overflow:hidden;color:var(--muted);font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.backend-real-grid b{font-style:normal;white-space:nowrap}.backend-sync-message{margin:10px 0 0;color:var(--muted);font-size:10px}.backend-sync-message.is-error{color:var(--danger)}.backend-sync-message.is-success{color:var(--brand);font-weight:700}
.identity-owner{display:flex;align-items:center;gap:13px}.identity-avatar{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:20px;font-weight:800}.identity-owner small,.identity-owner strong,.identity-owner p{display:block;margin:0}.identity-owner small{color:var(--muted);font-size:11px}.identity-owner strong{font-size:15px;margin-top:3px}.identity-owner p{color:var(--muted);font-size:11px;margin-top:4px}
.identity-path{display:flex;align-items:center;justify-content:center;gap:9px}.identity-path span{display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:10px;background:var(--surface)}.identity-path i{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-style:normal;font-size:11px;font-weight:800}.identity-path b{font-size:11px;white-space:nowrap}.identity-path em{color:var(--brand);font-style:normal}.identity-buttons{display:grid;gap:8px}.identity-buttons .button{white-space:nowrap}
.test-heading{margin:28px 0 13px}.test-heading small{color:var(--muted);font-size:11px}.role-test-grid,.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.role-test-grid>button,.scenario-grid>button{min-height:96px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:14px;display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;text-align:left;box-shadow:var(--shadow-soft);transition:.18s}.role-test-grid>button:hover,.scenario-grid>button:hover{border-color:var(--brand);transform:translateY(-2px)}.role-test-icon,.scenario-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.scenario-icon.red{background:#fee8e5;color:var(--danger)}.scenario-icon.blue{background:#e4effa;color:#356f9e}.scenario-icon.amber{background:#fff0d4;color:#9c640f}.scenario-icon.purple{background:#eee8f8;color:#7053a4}.role-test-grid strong,.role-test-grid small,.role-test-grid em,.scenario-grid strong,.scenario-grid small,.scenario-grid em{display:block}.role-test-grid strong,.scenario-grid strong{font-size:13px}.role-test-grid small,.scenario-grid small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.role-test-grid em,.scenario-grid em{margin-top:6px;color:var(--brand);font-size:10px;font-style:normal}.role-test-grid>button>i,.scenario-grid>button>i{color:var(--brand);font-style:normal;font-size:11px;white-space:nowrap}
.test-log-panel{margin-top:22px}.test-log-row{display:grid;grid-template-columns:95px 80px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line);font-size:11px}.test-log-row span{color:var(--muted)}.test-log-row p{margin:0}.test-log-row em{font-style:normal}

.role-modal{width:min(780px,100%)}.role-section{padding:17px 24px;border-bottom:1px solid var(--line)}.role-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.role-section-title strong,.role-section-title small{display:block}.role-section-title strong{font-size:14px}.role-section-title small{margin-top:3px;color:var(--muted);font-size:10px}.role-section .role-grid{padding:0}.role-grid-owned{grid-template-columns:1fr 1fr}.role-grid-preview{grid-template-columns:1fr 1fr}.role-grid button{min-height:68px}.role-grid button.is-active{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 12%,transparent)}.role-grid button.is-active i{font-weight:800}

.flow-modal{width:min(760px,100%)}.flow-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:var(--surface-2);font-size:12px}.flow-meta span{color:var(--brand);font-weight:800}.flow-meta strong{color:var(--muted)}.flow-track{display:flex;align-items:center;justify-content:center;padding:17px 24px;gap:0;overflow-x:auto}.flow-step{width:72px;min-width:58px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;color:var(--muted)}.flow-step:not(:last-child)::after{content:"";position:absolute;left:62%;right:-38%;top:15px;height:2px;background:var(--line)}.flow-step span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line);background:var(--surface);font-size:11px;font-weight:800;position:relative;z-index:1}.flow-step small{font-size:10px}.flow-step.is-active span{border-color:var(--brand);background:var(--brand);color:#fff}.flow-step.is-active small{color:var(--brand);font-weight:800}.flow-step.is-done span{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.flow-step.is-done:not(:last-child)::after{background:var(--brand)}.flow-content{padding:0 24px 22px}.flow-step-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface)}.flow-step-head{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center}.flow-big-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.flow-step-head small,.flow-step-head h3{display:block;margin:0}.flow-step-head small{font-size:10px;color:var(--muted)}.flow-step-head h3{font-size:18px;margin-top:2px}.flow-description{margin:15px 0;color:var(--muted);font-size:13px;line-height:1.7}.flow-result{display:flex;align-items:center;gap:11px;padding:13px;border-radius:11px;background:#e7f4ec}.flow-result>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:800}.flow-result small,.flow-result strong{display:block}.flow-result small{font-size:10px;color:var(--muted)}.flow-result strong{margin-top:3px;font-size:13px}.flow-next-owner{display:flex;gap:10px;align-items:center;margin:12px 0;color:var(--muted);font-size:11px}.flow-next-owner strong{color:var(--text)}.flow-open-page{width:100%}
.driver-delivery-panel{max-width:760px;margin:0 auto;padding:24px;border-radius:18px;background:linear-gradient(145deg,#075a3e,#003f2c);color:#fff;box-shadow:var(--shadow)}.driver-next-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.driver-next-head small{color:rgba(255,255,255,.7)}.driver-delivery-panel h2{margin:18px 0 4px;font-size:28px}.driver-delivery-panel>p{margin:0;color:rgba(255,255,255,.72)}.driver-key-info{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.driver-key-info span{padding:13px;border-radius:11px;background:rgba(255,255,255,.1)}.driver-key-info small,.driver-key-info strong{display:block}.driver-key-info small{color:rgba(255,255,255,.65);font-size:10px}.driver-key-info strong{margin-top:4px;font-size:15px}.driver-route-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:18px 0}.driver-route-steps span{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;color:rgba(255,255,255,.55)}.driver-route-steps span:not(:last-child)::after{content:"";position:absolute;left:62%;right:-38%;top:14px;height:2px;background:rgba(255,255,255,.18)}.driver-route-steps i{width:29px;height:29px;border:2px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10px;position:relative;z-index:1;background:#07533a}.driver-route-steps b{font-size:10px}.driver-route-steps .is-active{color:#fff}.driver-route-steps .is-active i{background:#f3b33d;border-color:#f3b33d;color:#3e2b00}.driver-route-steps .is-done{color:#9ee4c3}.driver-route-steps .is-done i{border-color:#8be0b5;background:#0b7a52}.driver-route-steps .is-done:not(:last-child)::after{background:#66c99a}.driver-main-action,.driver-secondary-action{width:100%;min-height:50px;border-radius:11px;font-weight:800;font-size:14px}.driver-main-action{border:0;background:#fff;color:#07563c}.driver-main-action:disabled{opacity:.72}.driver-secondary-action{margin-top:9px;border:1px solid rgba(255,255,255,.34);background:transparent;color:#fff}.driver-next-note{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding:12px;border-radius:10px;background:rgba(255,255,255,.08);font-size:11px}.driver-next-note span{color:rgba(255,255,255,.65)}
.calculation-line{display:grid;grid-template-columns:1fr 1.35fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.calculation-line span{font-weight:800}.calculation-line small{color:var(--muted);font-size:11px}.calculation-line b{color:var(--brand);font-size:12px}.calculation-formula{margin-top:14px;padding:14px;border-radius:11px;background:var(--brand-soft)}.calculation-formula small,.calculation-formula strong,.calculation-formula p{display:block}.calculation-formula small{color:var(--muted)}.calculation-formula strong{margin-top:4px;color:var(--brand)}.calculation-formula p{margin:7px 0 0;color:var(--muted);font-size:11px}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 12%,transparent)}

/* 小白易用：核心文案和触控区不做得过小 */
.nav-item,.button,.tool-button,.row-action,.text-button,.role-button,.quick-action,.todo-item,.login-method{min-height:44px}.nav-item b,.role-button strong,.quick-action strong,.todo-item strong{font-size:13px}.quick-action small,.todo-item small,.panel-head p,.request-row small,.mobile-data-card small{font-size:11px;line-height:1.45}.status,.row-action,th,td,.table-search input,.list-tools select{font-size:11px}.modal-head p:last-child,.field label,.field small,.review-row{font-size:11px}.mobile-bottom{grid-template-columns:repeat(var(--mobile-nav-count,5),1fr)}
.app-frame.is-mobile .mobile-bottom{grid-template-columns:repeat(var(--mobile-nav-count,5),1fr)}.app-frame.is-mobile .mobile-bottom button{min-height:52px}.app-frame.is-mobile .mobile-bottom b{font-size:10px}.app-frame.is-mobile .role-preview-banner{min-height:44px}.app-frame.is-mobile .role-preview-banner span:not(:first-child){overflow:hidden;text-overflow:ellipsis}.app-frame.is-mobile .role-preview-banner button{margin-left:auto;white-space:nowrap}.app-frame.is-mobile .identity-panel{grid-template-columns:1fr;padding:16px}.app-frame.is-mobile .identity-path{justify-content:flex-start;overflow-x:auto}.app-frame.is-mobile .identity-buttons{grid-template-columns:1fr 1fr}.app-frame.is-mobile .role-test-grid,.app-frame.is-mobile .scenario-grid{grid-template-columns:1fr}.app-frame.is-mobile .test-log-row{grid-template-columns:80px 1fr}.app-frame.is-mobile .test-log-row p{grid-column:1/-1}.app-frame.is-mobile .test-log-row em{justify-self:start}.app-frame.is-mobile .flow-meta{align-items:flex-start;flex-direction:column;padding:12px 16px}.app-frame.is-mobile .flow-track{justify-content:flex-start;padding:14px 16px}.app-frame.is-mobile .flow-content{padding:0 16px 18px}.app-frame.is-mobile .flow-step-card{padding:15px}.app-frame.is-mobile .flow-step-head{grid-template-columns:44px 1fr}.app-frame.is-mobile .flow-step-head em{grid-column:2;justify-self:start}.app-frame.is-mobile .flow-description{font-size:12px}.app-frame.is-mobile .modal-actions .button{flex:1}.app-frame.is-mobile .role-section{padding:14px 16px}.app-frame.is-mobile .role-grid-owned,.app-frame.is-mobile .role-grid-preview{grid-template-columns:1fr}
.app-frame.is-mobile .engineering-status-grid{grid-template-columns:1fr}.app-frame.is-mobile .engineering-status-head{align-items:flex-start;flex-direction:column}
.app-frame.is-mobile .backend-sync-head{flex-direction:column}.app-frame.is-mobile .backend-sync-actions{width:100%;display:grid;grid-template-columns:1fr}.app-frame.is-mobile .backend-sync-actions select,.app-frame.is-mobile .backend-sync-actions .button{width:100%}.app-frame.is-mobile .backend-sync-meta{align-items:flex-start;flex-direction:column}.app-frame.is-mobile .backend-sync-meta time{margin-left:0}.app-frame.is-mobile .backend-real-grid{grid-template-columns:1fr}.app-frame.is-mobile .backend-real-grid>div{grid-template-columns:38px 1fr auto}
.app-frame.is-mobile .driver-delivery-panel{padding:18px 16px;border-radius:15px}.app-frame.is-mobile .driver-delivery-panel h2{font-size:22px}.app-frame.is-mobile .driver-key-info{grid-template-columns:1fr 1fr}.app-frame.is-mobile .driver-key-info span:last-child{grid-column:1/-1}.app-frame.is-mobile .driver-route-steps b{font-size:9px}.app-frame.is-mobile .driver-next-note{flex-direction:column}
.app-frame.is-mobile .calculation-line{grid-template-columns:1fr}.app-frame.is-mobile .calculation-line b{justify-self:start}

@media (max-width:760px){.identity-panel{grid-template-columns:1fr;padding:16px}.identity-path{justify-content:flex-start;overflow-x:auto}.identity-buttons{grid-template-columns:1fr 1fr}.role-test-grid,.scenario-grid{grid-template-columns:1fr}.test-log-row{grid-template-columns:80px 1fr}.role-grid-owned,.role-grid-preview{grid-template-columns:1fr}.flow-meta{align-items:flex-start;flex-direction:column}.flow-track{justify-content:flex-start}.flow-step-head{grid-template-columns:44px 1fr}.flow-step-head em{grid-column:2;justify-self:start}.engineering-status-grid{grid-template-columns:1fr}.engineering-status-head{align-items:flex-start;flex-direction:column}.backend-sync-head{flex-direction:column}.backend-sync-actions{width:100%;display:grid}.backend-sync-actions select,.backend-sync-actions .button{width:100%}.backend-sync-meta{align-items:flex-start;flex-direction:column}.backend-sync-meta time{margin-left:0}.backend-real-grid{grid-template-columns:1fr}}
/* 人事个人简档与三类外部接入状态 */
.personal-profile-card{padding:22px;margin-bottom:16px}.profile-primary{display:grid;grid-template-columns:52px 1fr auto;gap:13px;align-items:center}.profile-primary .avatar{width:50px;height:50px}.profile-primary small,.profile-primary h2,.profile-primary p{display:block;margin:0}.profile-primary small{color:var(--muted);font-size:10px}.profile-primary h2{margin-top:2px;font-size:21px}.profile-primary p{margin-top:3px;color:var(--muted);font-size:11px}.profile-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.profile-facts span{padding:13px;border-radius:10px;background:var(--surface-2)}.profile-facts small,.profile-facts strong{display:block}.profile-facts small{color:var(--muted);font-size:10px}.profile-facts strong{margin-top:4px;font-size:12px}.profile-note{margin:14px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.integration-cards{grid-template-columns:repeat(3,1fr)}.integration-cards article{grid-template-columns:45px 1fr}.integration-cards article>.status{grid-column:1/3;justify-self:start}.integration-cards article>button{grid-column:1/3}.wechat-badge{background:#21ad66}
.app-frame.is-mobile .profile-primary{grid-template-columns:50px 1fr}.app-frame.is-mobile .profile-primary>.status{grid-column:2;justify-self:start}.app-frame.is-mobile .profile-facts{grid-template-columns:1fr 1fr}
.parttime-hero:has(>.credit-card.is-hidden){grid-template-columns:1fr}
@media (max-width:760px){.integration-cards{grid-template-columns:1fr}.profile-facts{grid-template-columns:1fr 1fr}}

/* 花乡课堂、技能成长与薪酬福利 */
.learning-dashboard,.skill-dashboard,.payroll-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.class-time{display:flex;align-items:center;gap:15px;margin:18px 0;padding:14px;border-radius:12px;background:var(--surface-2)}.class-time>span{min-width:72px;color:var(--brand);font-size:17px;font-weight:800;text-align:center}.class-time>span small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.class-time strong,.class-time p{display:block;margin:0}.class-time p{margin-top:5px;color:var(--muted);font-size:11px}.class-actions{display:flex;align-items:center;gap:12px}.class-actions small{color:var(--muted);font-size:10px}.growth-kpis,.matrix-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.growth-kpis span,.matrix-summary span{padding:14px;border-radius:11px;background:var(--surface-2)}.growth-kpis small,.growth-kpis strong,.matrix-summary small,.matrix-summary strong{display:block}.growth-kpis small,.matrix-summary small{color:var(--muted);font-size:10px}.growth-kpis strong,.matrix-summary strong{margin-top:4px;font-size:20px}.plain-tip{margin:13px 0 0;padding:11px;border-radius:9px;background:var(--brand-soft);color:var(--muted);font-size:10px;line-height:1.55}.learning-course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.course-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.course-cover{height:92px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-soft),#d5eee1);color:var(--brand);font-size:30px;font-weight:900}.course-cover.amber{background:linear-gradient(135deg,#fff2da,#f7d397);color:#9c640f}.course-cover.blue{background:linear-gradient(135deg,#e5f1fb,#bad8ed);color:#356f9e}.course-card>div{padding:15px}.course-card small,.course-card strong,.course-card p{display:block}.course-card small{color:var(--muted);font-size:10px}.course-card strong{margin-top:5px;font-size:14px}.course-card p{min-height:34px;margin:7px 0;color:var(--muted);font-size:11px;line-height:1.55}.course-card button{width:100%;min-height:38px;border:1px solid var(--brand);border-radius:8px;background:var(--brand-soft);color:var(--brand);font-weight:800}.certificate-tags{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px}.certificate-tags span{padding:12px;border-radius:10px;background:#e4f3ea;border:1px solid #cfe8d8}.certificate-tags span.warning{background:#fff3dc;border-color:#f1dfb8}.certificate-tags b,.certificate-tags small{display:block}.certificate-tags b{font-size:12px}.certificate-tags small{margin-top:4px;color:var(--muted);font-size:10px}.skill-progress-line{margin:20px 0 14px}.skill-progress-line>span{display:block;height:9px;border-radius:99px;background:var(--brand-soft);overflow:hidden}.skill-progress-line i{display:block;height:100%;border-radius:99px;background:var(--brand)}.skill-progress-line strong{display:block;margin-top:7px;font-size:11px}.missing-skills{display:flex;flex-wrap:wrap;gap:7px}.missing-skills span{padding:6px 8px;border-radius:7px;background:#fff0d4;color:#87580d;font-size:10px}.wide-button{width:100%;margin-top:16px}.matrix-summary{grid-template-columns:repeat(4,1fr)}.payroll-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:22px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));border-radius:var(--radius);background:linear-gradient(135deg,var(--surface),var(--brand-soft))}.payroll-hero small,.payroll-hero strong,.payroll-hero p{display:block;margin:0}.payroll-hero small{color:var(--muted);font-size:10px}.payroll-hero strong{margin-top:5px;font-size:25px}.payroll-hero p{margin-top:6px;color:var(--muted);font-size:11px}.benefit-row{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.benefit-row:first-of-type{margin-top:10px}.benefit-row>span{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:800}.benefit-row strong,.benefit-row small{display:block}.benefit-row small{margin-top:3px;color:var(--muted);font-size:10px}.benefit-row>b{color:var(--brand);font-size:11px;text-align:right}
.app-frame.is-mobile .learning-dashboard,.app-frame.is-mobile .skill-dashboard,.app-frame.is-mobile .payroll-dashboard,.app-frame.is-mobile .learning-course-grid{grid-template-columns:1fr}.app-frame.is-mobile .matrix-summary{grid-template-columns:1fr 1fr}.app-frame.is-mobile .class-actions{align-items:stretch;flex-direction:column}.app-frame.is-mobile .class-actions small{text-align:center}.app-frame.is-mobile .certificate-tags{grid-template-columns:1fr}.app-frame.is-mobile .payroll-hero{align-items:flex-start;flex-direction:column}
@media (max-width:760px){.learning-dashboard,.skill-dashboard,.payroll-dashboard,.learning-course-grid{grid-template-columns:1fr}.matrix-summary{grid-template-columns:1fr 1fr}.class-actions{align-items:stretch;flex-direction:column}.certificate-tags{grid-template-columns:1fr}.payroll-hero{align-items:flex-start;flex-direction:column}}
@supports (height:100dvh){.stage{height:calc(100dvh - 62px)}@media (max-width:760px){.stage{height:calc(100dvh - 56px)}}}

/* 花事清简：登录、首页与绩效 */
body[data-theme="fresh"]{
  --brand:#086b4c;
  --brand-2:#0a7b58;
  --brand-soft:#eaf5ef;
  --accent:#e99a25;
  --bg:#f7f8f4;
  --surface:#fff;
  --surface-2:#f7f8f4;
  --text:#172a22;
  --muted:#64716b;
  --line:#dee5e0;
  --danger:#c94b45;
  --warning:#e99a25;
  --shadow:0 10px 28px rgba(23,42,34,.08);
  --shadow-soft:0 4px 14px rgba(23,42,34,.055);
  --radius:16px;
  --radius-sm:14px;
}

.app-shell{background:var(--bg)}
.sidebar{width:218px;flex-basis:218px;padding:18px 12px 16px}
.sidebar-brand{padding:2px 9px 18px}
.nav-item{min-height:44px;margin:1px 0;padding:9px 10px;border-radius:11px}
.topbar{height:64px;flex-basis:64px;padding:0 22px;background:var(--surface)}
.content{padding:24px clamp(18px,2.6vw,34px) 48px}
.page{max-width:1280px}
.role-button small{display:none}
.role-button{grid-template-columns:36px 1fr auto;min-width:0}
.panel,.list-panel,.metric-card,.quick-action{box-shadow:var(--shadow-soft)}
.button,.tool-button,.text-button,.more-button,.quick-action,.todo-item,summary{min-height:44px}

/* 登录只调整呈现，不触碰认证逻辑 */
.login-screen{grid-template-columns:minmax(360px,43%) minmax(0,1fr);background:var(--bg)}
.login-brand-panel{padding:clamp(34px,5vw,68px);background:linear-gradient(150deg,#075a42,#086b4c 58%,#0a7755)}
.login-kicker{display:none}
.login-brand-panel h2{font-size:clamp(50px,5vw,72px);letter-spacing:-.05em}
.login-brand-panel>div>p:last-child{max-width:360px;font-size:17px;line-height:1.7}
.login-feature-list{margin-top:42px;gap:10px}
.login-action-panel{padding:36px clamp(22px,5vw,64px);background:var(--bg)}
.login-box{width:min(470px,100%);padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.login-box h1{font-size:34px}
.login-method{min-height:48px;border-radius:14px;box-shadow:none;transform:none}
.login-method:hover{transform:none;box-shadow:none;background:var(--brand-soft)}
.login-box input,.login-box select{min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}

/* 首页：优先呈现问候、待办和四个常用入口 */
.welcome-card--clean{min-height:160px;padding:26px 30px;background:linear-gradient(135deg,var(--surface),var(--brand-soft));box-shadow:none}
.welcome-card--clean h1{font-size:30px}
.welcome-card--clean .welcome-actions{margin-top:18px}
.welcome-card--clean .hero-flower{width:150px;height:120px;flex-basis:150px;transform:scale(.78)}
.home-focus-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.85fr);gap:16px;margin-top:16px;align-items:stretch}
.home-todo-panel{padding:18px 20px;box-shadow:none}
.home-todo-panel .panel-head h2{margin:1px 0 0;font-size:20px}
.home-todo-panel .todo-list{margin:8px -6px -4px}
.home-todo-panel .todo-item{padding:9px 6px}
.home-todo-panel .todo-item:nth-child(n+4){display:none}
.home-quick-section{margin:0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.home-quick-section .section-heading h2{font-size:20px}
.home-quick-section .quick-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.home-quick-section .quick-action{min-height:76px;padding:11px;grid-template-columns:38px minmax(0,1fr);gap:9px;box-shadow:none}
.home-quick-section .quick-action>span{width:36px;height:36px;border-radius:11px}
.home-quick-section .quick-action i{display:none}
.home-quick-section .quick-action strong{font-size:13px}
.home-quick-section .quick-action small{font-size:10px;line-height:1.35}
.home-more,.performance-breakdown,.performance-score-details,.heading-more{border:0}
.home-more{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.home-more>summary,.performance-breakdown>summary,.performance-score-details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;cursor:pointer;list-style:none}
.home-more>summary::-webkit-details-marker,.performance-breakdown>summary::-webkit-details-marker,.performance-score-details>summary::-webkit-details-marker,.heading-more>summary::-webkit-details-marker{display:none}
.home-more>summary span,.home-more>summary strong,.home-more>summary small,.performance-breakdown>summary span,.performance-breakdown>summary strong,.performance-breakdown>summary small,.performance-score-details>summary span,.performance-score-details>summary strong,.performance-score-details>summary small{display:block}
.home-more>summary small,.performance-breakdown>summary small,.performance-score-details>summary small{margin-top:3px;color:var(--muted);font-size:11px}
.home-more>summary b,.performance-breakdown>summary b,.performance-score-details>summary b{color:var(--brand);font-size:11px}
.home-more[open]>summary b,.performance-score-details[open]>summary b{font-size:0}
.home-more[open]>summary b::after,.performance-score-details[open]>summary b::after{content:"收起";font-size:11px}
.home-more .metric-grid{padding:0 18px 16px;margin-top:0}
.home-progress-panel{margin:0 18px 18px;box-shadow:none}

/* 绩效：先结果，后五层依据，明细按需展开 */
.performance-heading{align-items:flex-start}
.heading-more{position:relative}
.heading-more>summary{display:grid;place-items:center;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--brand);cursor:pointer;list-style:none;font-size:12px;font-weight:800}
.heading-more[open]>summary{border-color:var(--brand);background:var(--brand-soft)}
.heading-more .heading-actions{position:absolute;z-index:5;right:0;top:50px;min-width:260px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.heading-more .heading-actions .button{flex:1;white-space:nowrap}
.performance-summary--clean{grid-template-columns:minmax(270px,.78fr) minmax(0,1.22fr);gap:14px}
.performance-summary--clean>div{min-height:174px;padding:24px;border-radius:var(--radius)}
.performance-score-card{display:grid;align-content:center;grid-template-columns:1fr auto;column-gap:12px;background:linear-gradient(145deg,#075f45,#0a7856)!important}
.performance-score-card>p,.performance-score-card>small,.performance-score-card>strong{grid-column:1}
.performance-score-card>small{margin-top:17px;color:rgba(255,255,255,.72)}
.performance-score-card>strong{margin-top:2px!important;font-size:46px!important}
.performance-score-card>.status{grid-column:2;grid-row:1/4;align-self:center}
.performance-result-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--surface)!important;box-shadow:none}
.performance-result-card>strong{margin:5px 0!important;color:var(--brand);font-size:36px!important}
.performance-result-card>p{max-width:680px;font-size:12px!important;line-height:1.6}
.performance-result-card .button{width:auto;min-height:44px;margin-top:10px;padding:0 18px;border:0;background:var(--brand);color:#fff;font-size:12px}
.performance-result-card .button:hover{background:var(--brand-2)}
.performance-breakdown,.performance-score-details{margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.performance-breakdown>summary,.performance-score-details>summary{border-bottom:1px solid transparent}
.performance-breakdown[open]>summary,.performance-score-details[open]>summary{border-bottom-color:var(--line)}
.performance-layers{margin:0;padding:4px 18px 12px;list-style:none}
.performance-layers li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.performance-layers li:first-child{border-top:0}
.performance-layers li>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:900}
.performance-layers li div{min-width:0}
.performance-layers li small,.performance-layers li strong,.performance-layers li p{display:block;margin:0}
.performance-layers li small{color:var(--muted);font-size:11px}
.performance-layers li strong{margin-top:2px;font-size:16px}
.performance-layers li p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.performance-layers li em{padding:5px 8px;border-radius:99px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-style:normal;white-space:nowrap}
.performance-score-details .score-panel{border:0;border-radius:0;box-shadow:none}
.score-total-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0 3px;border-top:1px solid var(--line)}
.score-total-row strong{color:var(--brand);font-size:17px}

@media (max-width:980px){
  .home-focus-grid{grid-template-columns:1fr}
  .home-todo-panel .todo-item:nth-child(n+4){display:grid}
  .performance-summary--clean{grid-template-columns:1fr}
}

@media (max-width:760px){
  html,body,.stage,.app-frame,.login-screen,.app-shell,.app-main,.content,.page{max-width:100%;overflow-x:hidden}
  .login-screen{grid-template-columns:1fr}
  .login-brand-panel{min-height:148px;padding:22px 20px;display:grid;grid-template-columns:58px 1fr;gap:13px;align-content:center}
  .login-brand-panel .login-logo{width:56px;height:56px;margin:0;grid-row:1/3}
  .login-brand-panel h2{font-size:31px}
  .login-brand-panel>div>p:last-child{margin-top:2px;font-size:12px}
  .login-feature-list{display:none}
  .login-action-panel{padding:16px 12px 24px}
  .login-box{padding:18px 14px;border-radius:16px;box-shadow:none}
  .login-box h1{font-size:27px}
  .topbar{padding:0 12px}
  .content{padding:14px 12px 84px}
  .welcome-card--clean{min-height:172px;padding:22px 18px}
  .welcome-card--clean h1{font-size:25px}
  .welcome-card--clean .welcome-actions{align-items:stretch;margin-top:16px}
  .welcome-card--clean .welcome-actions .button{width:100%}
  .home-focus-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px}
  .home-todo-panel,.home-quick-section{padding:15px 14px}
  .home-todo-panel .todo-item:nth-child(n+4){display:none}
  .home-todo-panel .todo-item{grid-template-columns:35px minmax(0,1fr);gap:9px}
  .home-todo-panel .todo-item time{display:none}
  .home-quick-section .quick-grid{grid-template-columns:1fr 1fr;gap:8px}
  .home-quick-section .quick-action{min-height:98px;display:flex;flex-direction:column;align-items:flex-start;padding:12px}
  .home-quick-section .quick-action div{min-width:0}
  .home-quick-section .quick-action strong,.home-quick-section .quick-action small{overflow-wrap:anywhere}
  .home-more{margin-top:12px}
  .home-more>summary,.performance-breakdown>summary,.performance-score-details>summary{padding:13px 14px}
  .home-more .metric-grid{grid-template-columns:1fr 1fr;padding:0 12px 12px}
  .home-more .metric-card{min-width:0;padding:12px}
  .home-progress-panel{margin:0 12px 12px}
  .performance-heading{gap:12px}
  .heading-more{width:100%}
  .heading-more>summary{width:100%}
  .heading-more .heading-actions{position:static;min-width:0;margin-top:8px;display:grid;grid-template-columns:1fr 1fr;box-shadow:none}
  .performance-summary--clean{grid-template-columns:minmax(0,1fr)}
  .performance-summary--clean>div{min-width:0;min-height:150px;padding:20px 18px}
  .performance-score-card>strong{font-size:39px!important}
  .performance-result-card>strong{font-size:30px!important;overflow-wrap:anywhere}
  .performance-result-card .button{width:100%}
  .performance-layers{padding:3px 14px 10px}
  .performance-layers li{grid-template-columns:36px minmax(0,1fr);gap:9px}
  .performance-layers li>em{grid-column:2;justify-self:start}
  .performance-score-details .score-panel{padding:14px}
  .performance-score-details .score-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .performance-score-details .score-row>span{grid-column:1/-1}
}

/* 正式公网入口只展示业务登录，不展示原型设计对比工具。 */
body.formal-workbench .preview-bar{display:none}
body.formal-workbench .stage{height:100vh}
body.formal-workbench .app-frame{width:100%;height:100%;margin:0;border:0;border-radius:0;box-shadow:none}
body.formal-workbench .prototype-view{background:var(--surface)}

/* 手机端网格子项允许收缩，避免较长中文说明撑宽页面。 */
.login-method>*{min-width:0}
.login-method strong,.login-method small{overflow-wrap:anywhere}
.login-section-title>div{min-width:0}

@media (max-width:760px){
  body.formal-workbench .login-action-panel{width:100%;min-width:0}
  body.formal-workbench .login-box{width:100%;min-width:0;max-width:calc(100vw - 24px)}
  body.formal-workbench .login-section,
  body.formal-workbench .login-method,
  body.formal-workbench .password-login-shell{width:100%;min-width:0;max-width:100%}
  body.formal-workbench .login-section-title{grid-template-columns:27px minmax(0,1fr) auto}
  body.formal-workbench .login-method{grid-template-columns:43px minmax(0,1fr) 16px}
  body.formal-workbench .login-tip,
  body.formal-workbench .login-method strong,
  body.formal-workbench .login-method small{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
}
