.web-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 28px}.web-heading h1{font-size:25px;margin:0 0 8px}.web-heading p{color:#697386;margin:0;font-size:14px}.web-badge{font-size:12px;padding:8px 12px;background:#eef3f9;color:#345477;border-radius:6px;white-space:nowrap}.web-flow{display:flex;gap:15px;align-items:center;background:#f6f8fa;padding:18px 22px;border-radius:8px;color:#42546b;margin-bottom:25px;font-size:13px}.web-flow i{font-style:normal;color:#9aa6b3}.web-tabs{display:flex;gap:10px;margin-bottom:24px}.web-tabs .sel{background:#214f83;color:white}.web-fields{display:flex;gap:16px;align-items:end;margin-bottom:20px}.web-fields label{max-width:240px;flex:1}.web-fields label,.web-knowledge label{display:block;font-size:13px;color:#647084}.web-fields input,.web-knowledge input,.web-knowledge textarea{display:block;margin-top:8px;width:100%}.web-customer-grid{display:grid;grid-template-columns:minmax(320px,1fr) 300px;gap:24px}.web-conversation{border:1px solid #e5e8ed;border-radius:10px;overflow:hidden;margin:0}.web-section-head{display:flex;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #edf0f3;font-size:14px}.web-messages{height:390px;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.web-msg{max-width:88%;align-self:flex-end;background:#f0f3f6;border-radius:10px;padding:12px 16px;font-size:14px;white-space:pre-wrap;line-height:1.7}.web-msg.reply{align-self:flex-start;background:#eef4fb}.web-msg small{display:block;font-size:11px;color:#697386;margin-bottom:5px}.web-empty{margin:auto;color:#788394;text-align:center;line-height:2;font-size:14px}.web-composer{padding:18px;border-top:1px solid #edf0f3}.web-composer textarea{width:100%;resize:vertical;margin:8px 0 12px;min-height:90px}.web-field-label{font-size:12px;color:#768296}.web-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.web-actions select{flex:1;min-width:140px}.web-followup section{margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid #edf0f3}.web-followup h3{font-size:14px;margin:0 0 12px}.web-followup .web-actions{margin-top:12px}.web-ticket{font-size:13px;padding:10px 0;line-height:1.8;color:#495568}.web-ticket b{display:block}.web-knowledge{max-width:800px}.web-knowledge form{margin-top:30px;display:grid;gap:20px}.web-knowledge article{padding:18px 0;border-bottom:1px solid #eee;white-space:pre-wrap;font-size:14px}.web-knowledge article b{display:block;margin-bottom:10px}.web-check{display:flex!important;align-items:center;gap:10px}.web-check input{width:auto;margin:0}.web-settings{line-height:2.2;color:#596679;font-size:14px;margin-bottom:20px}#cgError{font-size:13px;color:#a33232;margin-top:10px}.web-user{display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}.web-user span:first-child{flex:1}.web-login{max-width:380px;margin:12vh auto;padding:32px}.web-login h1{font-size:24px;margin-bottom:8px}.web-login p{color:#748196;font-size:14px;margin-bottom:32px}.web-login label{display:block;margin:20px 0}.web-login input{display:block;width:100%;margin-top:8px}.web-login button{width:100%}.web-login [role=alert]{color:#9a3434;margin-top:15px;font-size:13px}@media(max-width:1100px){.web-customer-grid{grid-template-columns:1fr}.web-followup{display:grid;grid-template-columns:1fr 1fr;gap:20px}}@media(max-width:700px){.web-heading{align-items:start;flex-direction:column}.web-flow{flex-wrap:wrap;gap:8px}.web-fields{flex-wrap:wrap}.web-followup{display:block}.side{min-width:130px!important;width:130px!important}.side .tab{padding-left:10px!important;font-size:13px!important}.wrap{padding:16px!important}.web-customer-grid{grid-template-columns:minmax(0,1fr)}.web-badge{white-space:normal}}

.team-form,.team-filters{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:18px 0}.team-form label,.team-filters label{display:grid;gap:8px;font-size:13px;color:#596679}.team-form input,.team-filters input,.team-filters select{max-width:240px;padding:10px;border:1px solid #d8dde4;border-radius:6px}.team-form [role=alert]{width:100%;color:#9a3434;margin:0}.team-credential{background:#f0f5fa;border:1px solid #dce5f0;padding:18px;border-radius:8px}.team-credential pre{white-space:pre-wrap;overflow-wrap:anywhere}.team-event{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid #e7eaf0;padding:12px 0;font-size:13px}.team-event span:first-child{color:#697386}.team-event button{margin-left:auto}#teamRecords{margin-top:36px}#teamRecordError{font-size:13px;color:#697386}#teamCurrent details{border-bottom:1px solid #e7eaf0;padding:14px 0}#teamCurrent p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}#teamCurrent h3{margin-top:24px}.team-snapshot{border:1px solid #dde2e8;border-radius:12px;padding:24px;width:min(800px,90vw)}.team-snapshot pre{max-height:65vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.team-snapshot::backdrop{background:#0006}.web-user{flex-wrap:wrap} [hidden]{display:none!important}
.team-snapshot{max-height:90vh;overflow:auto}.team-snapshot pre{font-family:inherit;font-size:14px;line-height:1.8}.team-snapshot details{margin:16px 0}.team-snapshot summary{cursor:pointer;color:#697386}

/* 登录页：账号和密码必须使用同一套控件规格，不能让密码框回退到浏览器默认样式。 */
.web-login{width:min(420px,calc(100vw - 40px));max-width:none;margin:clamp(72px,14vh,144px) auto;padding:0}
.web-login h1{margin:0 0 10px;font-size:28px;line-height:1.3;letter-spacing:-.025em}
.web-login>p{max-width:390px;margin:0;color:var(--ink-3);font-size:14px;line-height:1.75}
.web-login form{display:grid;gap:20px;margin-top:34px}
.web-welcome form{gap:var(--space-ui,10px)}
.web-welcome button[type=submit]{margin-top:0}
.web-welcome input:focus-visible,.web-welcome button:focus-visible{outline:2px solid var(--blue,#214f83);outline-offset:3px}
.web-welcome button:disabled{opacity:.65;cursor:wait}
.web-login label{display:grid;gap:8px;margin:0;color:var(--ink-2);font-size:13px;font-weight:600}
.web-login input{display:block;width:100%;height:46px;margin:0;padding:0 13px;border:1px solid rgba(22,24,29,.18);border-radius:var(--r-s);background:var(--sunk);color:var(--ink);font:14px/20px inherit;transition:border-color .14s var(--ease),box-shadow .14s var(--ease),background .14s var(--ease)}
.web-login input:hover{border-color:rgba(22,24,29,.28)}
.web-login input:focus{outline:0;border-color:#315b85;background:var(--paper);box-shadow:0 0 0 3px rgba(49,91,133,.12)}
.web-login input:-webkit-autofill,.web-login input:-webkit-autofill:hover,.web-login input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--sunk) inset,0 0 0 3px transparent;transition:background-color 9999s ease-out 0s}
.web-login input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--paper) inset,0 0 0 3px rgba(49,91,133,.12)}
.web-login button{width:100%;min-height:46px;margin-top:4px;border-radius:var(--r-s);font-size:14px}
.web-login [role=alert]{min-height:20px;margin:0;color:#9a3434;font-size:13px;line-height:1.5}
.web-login .login-remember{display:flex;align-items:center;gap:8px;margin:-6px 0 0;color:var(--ink-3);font-weight:400;cursor:pointer}.web-login .login-remember input{width:15px;height:15px;margin:0;padding:0;accent-color:#315b85}
.web-login form+p{margin-top:25px;font-size:13px;line-height:1.65}
.web-login .password-field{position:relative;display:block}.web-login .password-field input{padding-right:46px}.web-login .password-toggle{position:absolute;top:1px;right:1px;display:grid;width:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:var(--r-s);place-items:center;background:transparent;color:var(--ink-3);cursor:pointer}.web-login .password-toggle:hover{background:rgba(22,24,29,.05);color:var(--ink)}.web-login .password-toggle:focus-visible{outline:2px solid #315b85;outline-offset:-3px}.web-login .password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.web-login .password-icon-slash{display:none}.web-login .password-toggle.is-visible .password-icon-slash{display:block}
@media(max-width:700px){.web-login{width:min(420px,calc(100vw - 32px));margin-top:56px}.web-login h1{font-size:25px}.web-login form{margin-top:28px}}

/* 登录内容区块沿用全站外间距；字段内部仍使用原来的控件规格。 */
.web-login form,.web-login form+p{margin-top:var(--space-ui)}

/* Entry windows center in both axes; short viewports scroll with safe margins. */
.entry-document{overflow-y:auto;scrollbar-gutter:auto}
.entry-page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:40px 20px}
.entry-page .web-login{width:min(420px,100%);margin:auto;padding:0}
.entry-page .web-login [role=alert]:empty{display:none}

/* Welcome copy shares the centered axis; form labels remain left aligned. */
.web-welcome>h1,.web-welcome>p{text-align:center;text-wrap:pretty}
