/* 星通云（公司版）外观，2026-10-18 第八轮全新升级：石墨侧栏 + 白色顶栏 + 浅灰画布，科技蓝强调色。 */
:root {
    --ds-bg: #f5f6f8; --ds-surface: #ffffff; --ds-surface-2: #f8f9fb;
    --ds-border: #e6e9ef; --ds-border-strong: #d4d9e2;
    --ds-text: #101828; --ds-text-2: #475467; --ds-text-3: #68768b;
    --ds-primary: #2459f0; --ds-primary-hover: #1b48d4; --ds-primary-ink: #1a40b5; --ds-primary-soft: #ecf1ff;
    --ds-primary-ring: rgba(36, 89, 240, .18); --ds-row-hover: #f7f9ff;
    --sh-side: #0d1320; --sh-side-2: #151c2c; --sh-side-text: #a4afc3; --sh-side-strong: #f3f5f9; --sh-side-w: 252px;
}
body.ds--company { min-height: 100vh; }
.sh { display: flex; align-items: stretch; height: 100vh; height: 100dvh; overflow: hidden; }
.sh-side { flex: 0 0 var(--sh-side-w); width: var(--sh-side-w); }
.sh-main { flex: 1 1 auto; min-width: 0; height: 100%; min-height: 0; overflow: auto; overscroll-behavior: contain; }
/* Desktop keeps each scroll region within the viewport. Long tables never size the navigation column. */

/* ---------------------------------------------------------------- 侧栏 */
.sh-side { position: relative !important; top: auto; height: 100%; min-height: 0; display: flex; flex-direction: column; background: var(--sh-side); color: var(--sh-side-text); z-index: 300; }
.sh-brand { display: flex; align-items: center; gap: 10px; padding: 18px 18px 14px; color: #fff !important; text-decoration: none; }
.sh-brand__logo { display: grid; place-items: center; height: 30px; padding: 0 8px; border-radius: 7px; background: #fff; }
.sh-brand__logo img { display: block; height: 16px; }
.sh-brand__name { font-size: 17px; font-weight: 700; letter-spacing: .02em; color: #fff; }
.sh-brand__tag { margin-left: auto; padding: 1px 7px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 999px; font-size: 11px; color: var(--sh-side-text); }
.sh-search { position: relative; margin: 2px 14px 10px; }
.sh-search input { width: 100%; box-sizing: border-box; height: 34px; padding: 0 10px 0 32px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 8px;
    background: var(--sh-side-2); color: #e9edf5; font: 13px var(--ds-font); outline: none; padding-left: 32px !important; }
.sh-search input::placeholder { color: #6f7b91; }
.sh-search input:focus { border-color: rgba(120, 150, 255, .55); }
.sh-search .svg-icon { position: absolute; left: 10px; top: 9px; width: 15px; height: 15px; color: #6f7b91; }
.sh-search kbd { position: absolute; right: 8px; top: 8px; padding: 0 5px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 4px; color: #6f7b91; font: 11px/16px var(--ds-font); }
.sh-results { position: absolute; left: 0; right: 0; top: 40px; max-height: 360px; overflow: auto; padding: 6px; border: 1px solid var(--ds-border); border-radius: 10px;
    background: #fff; box-shadow: var(--ds-shadow-lg); z-index: 400; }
.sh-results[hidden] { display: none; }
.sh-results a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 6px; color: var(--ds-text) !important; font-size: 13px; text-decoration: none; }
.sh-results a span { color: var(--ds-text-3); font-size: 12px; }
.sh-results a:hover, .sh-results a.is-hit { background: var(--ds-primary-soft); }
.sh-results__none { display: block; padding: 8px 10px; color: var(--ds-text-3); font-size: 12px; }
.sh-nav { flex: 1; overflow-y: auto; padding: 4px 10px 16px; scrollbar-width: thin; scrollbar-color: #2a3346 transparent; }
.sh-sec + .sh-sec { margin-top: 14px; }
.sh-sec__title { padding: 6px 10px; color: #6d788e; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; }
.sh-item { display: flex; align-items: center; gap: 10px; min-height: 34px; padding: 0 10px; border-radius: 8px; color: var(--sh-side-text) !important; font-size: 13.5px;
    text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sh-item .svg-icon { width: 17px; height: 17px; color: #6f7b91; }
.sh-item:hover { background: rgba(255, 255, 255, .05); color: var(--sh-side-strong) !important; }
.sh-item.is-active { background: rgba(80, 120, 255, .16); color: #fff !important; font-weight: 600; }
.sh-item.is-active .svg-icon { color: #8fb0ff; }
.sh-group { margin: 2px 0; }
.sh-group > summary { list-style: none; cursor: pointer; }
.sh-group > summary::-webkit-details-marker { display: none; }
.sh-group__items { margin: 2px 0 4px 18px; padding-left: 10px; border-left: 1px solid rgba(255, 255, 255, .08); }
.sh-group__items .sh-item { min-height: 30px; font-size: 13px; }
.sh-side__foot { padding: 12px 14px; border-top: 1px solid rgba(255, 255, 255, .06); font-size: 11.5px; color: #5f6a80; }

/* ---------------------------------------------------------------- 顶栏 */
.sh-main { min-width: 0; display: flex; flex-direction: column; }
.sh-top { position: sticky; top: 0; z-index: 200; display: flex; align-items: center; gap: 14px; height: 60px; padding: 0 28px; border-bottom: 1px solid var(--ds-border);
    background: #fff; }
.sh-toggle { display: none; width: 36px; height: 36px; border: 1px solid var(--ds-border); border-radius: 8px; background: #fff; color: var(--ds-text-2); cursor: pointer; }
.sh-crumb { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--ds-text-3); font-size: 13px; }
.sh-crumb strong { color: var(--ds-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sh-top__spacer { flex: 1; }
.sh-top__link { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 8px; color: var(--ds-text-2) !important; font-size: 13px; text-decoration: none; }
.sh-top__link:hover { background: var(--ds-surface-2); }
.sh-user { position: relative; }
.sh-user__btn { display: flex; align-items: center; gap: 10px; height: 40px; padding: 0 8px 0 4px; border: 0; border-radius: 10px; background: transparent; cursor: pointer; font: inherit; color: var(--ds-text); }
.sh-user__btn:hover { background: var(--ds-surface-2); }
.sh-avatar { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #2459f0, #6a8bff); color: #fff; font-weight: 700; font-size: 13px; }
.sh-user__meta { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.25; }
.sh-user__meta strong { font-size: 13px; }
.sh-user__meta span { color: var(--ds-text-3); font-size: 11.5px; }
.sh-menu { position: absolute; right: 0; top: 46px; min-width: 220px; padding: 6px; border: 1px solid var(--ds-border); border-radius: 12px; background: #fff; box-shadow: var(--ds-shadow-lg); }
.sh-menu[hidden] { display: none; }
.sh-menu__head { padding: 10px 10px 8px; border-bottom: 1px solid var(--ds-border); margin-bottom: 4px; }
.sh-menu__head strong { display: block; font-size: 14px; }
.sh-menu__head span { color: var(--ds-text-3); font-size: 12px; }
.sh-menu a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--ds-text) !important; font-size: 13.5px; text-decoration: none; }
.sh-menu a:hover { background: var(--ds-surface-2); }
.sh-menu .svg-icon { width: 16px; height: 16px; color: var(--ds-text-3); }
.sh-foot { margin-top: auto; padding: 18px 28px 22px; color: var(--ds-text-3); font-size: 11.5px; text-align: center; }
.sh-foot a { color: var(--ds-text-3) !important; text-decoration: none; }
.sh-foot a:hover { color: var(--ds-text-2) !important; }
.sh-mask { display: none; }

/* 未登录页（登录 / 注册 / 找回密码） */
.sh-guest { min-height: 100vh; display: flex; flex-direction: column; background: var(--ds-bg); }
.sh-guest__top { display: flex; align-items: center; justify-content: space-between; padding: 18px 32px; }
.sh-guest__brand { display: flex; align-items: center; gap: 10px; color: var(--ds-text) !important; text-decoration: none; font-weight: 700; font-size: 17px; }
.sh-guest__brand img { height: 22px; }
.sh-guest main { flex: 1; }

@media (max-width: 1080px) {
    .sh { display: block; height: auto; min-height: 100vh; overflow: visible; }
    .sh-main { height: auto; min-height: 100vh; overflow: visible; }
    .sh-side { position: fixed !important; left: 0; top: 0; bottom: 0; height: auto; width: min(280px, 84vw); transform: translateX(-102%); transition: transform .2s ease; }
    body.sh-open .sh-side { transform: none; box-shadow: var(--ds-shadow-lg); }
    body.sh-open .sh-mask { display: block; position: fixed; inset: 0; z-index: 250; background: rgba(13, 19, 32, .4); }
    .sh-toggle { display: inline-grid; place-items: center; }
    .sh-top { padding: 0 14px; }
    .sh-user__meta { display: none; }
}

/* Company workspace — compact engineering console, release 20261018.9 */
body.ds--company { --sh-side-w: 236px; }
.ds--company .sh-brand { min-height: 78px; padding: 20px 20px 16px; gap: 11px; }
.ds--company .sh-brand__name { font-size: 18px; letter-spacing: .035em; line-height: 1.3; }
.ds--company .sh-brand__name small { display: block; margin-top: 3px; color: #8492ac; font-size: 10px; font-weight: 500; letter-spacing: .16em; }
.ds--company .sh-brand__logo { height: 31px; border-radius: 5px; padding: 0 6px; }
.ds--company .sh-brand__logo img { width: 51px; height: auto; }
.ds--company .sh-search { margin: 5px 16px 20px; }
.ds--company .sh-search input { height: 36px; border-radius: 6px; background: #1a2233; border-color: #293346; }
.ds--company .sh-nav { padding: 0 12px 20px; min-height: 0; }
.ds--company .sh-sec + .sh-sec { margin-top: 22px; }
.ds--company .sh-sec__title { font-size: 10.5px; color: #71809b; padding: 0 12px 7px; letter-spacing: .1em; }
.ds--company .sh-item { position: relative; gap: 11px; min-height: 38px; padding: 0 12px; margin-top: 3px; border-radius: 6px; font-size: 13px; }
.ds--company .sh-item.is-active { background: #263d70; color: #fff !important; }
.ds--company .sh-item.is-active::before { content: ''; position: absolute; top: 10px; bottom: 10px; left: 0; width: 2px; background: #98b8ff; border-radius: 2px; }
.ds--company .sh-group__items { margin-left: 20px; border-color: #2a3345; }
.ds--company .sh-side__foot { flex: none; min-height: 48px; padding: 15px 18px; font-size: 10px; color: #71809b; }
.ds--company .sh-top { flex: none; min-height: 64px; height: 64px; padding: 0 32px; box-shadow: 0 1px 0 rgba(16,24,40,.02); }
.ds--company .sh-crumb { font-size: 12px; }
.ds--company .sh-crumb strong { font-size: 13px; }
.ds--company .sh-workspace-label { padding: 4px 8px; border: 1px solid #e3e8f0; border-radius: 4px; font-size: 10px; color: #68768b; letter-spacing: .06em; }
.ds--company .sh-avatar { background: #e9efff; color: #244fbe; border-radius: 10px; }
.ds--company .sh-menu { z-index: 320; }
.ds--company .sh-main > .shell { flex: 1 0 auto; width: 100%; max-width: 1680px; margin: 0 auto; padding: 32px 36px 40px; }
.ds--company .sh-foot { flex: none; padding: 12px 32px 18px; color: #68768b; font-size: 10px; }
.ds--company .xh-head { align-items: center; padding: 0 0 6px; }
.ds--company .xh-head h1 { font-size: 27px; letter-spacing: -.025em; line-height: 1.25; }
.ds--company .xh-head__date { font: 11px var(--ds-mono); color: #68768b; }
.ds--company .xh-head__welcome { display: inline; margin: 0; font-size: 13px; color: #536176; }
.ds--company .xh-head__desc { max-width: 780px; margin-top: 4px; font-size: 12px; }
.ds--company .xh-kpis { gap: 14px; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); }
.ds--company .xh-kpi { padding: 20px; border-radius: 10px; box-shadow: none; min-height: 110px; }
.ds--company .xh-kpi strong { font-size: 29px; margin-top: 3px; font-weight: 650; letter-spacing: -.035em; }
.ds--company .xh-kpi__label { color: #738196; font-size: 11px; }
.ds--company .xh-kpi__icon { width: 28px; height: 28px; border-radius: 7px; }
.ds--company .xh-cta { padding: 24px; border: 1px solid #dce5fa; border-radius: 10px; background: #edf2ff; box-shadow: none; }
.ds--company .xh-cta h2 { font-size: 17px; color: #203e77; }
.ds--company .xh-cta p { color: #667a9a; font-size: 12px; }
.ds--company .xh-steps { padding: 20px 18px 22px; gap: 8px; }
.ds--company .xh-steps__icon { width: 34px; height: 34px; background: #f2f5fa; color: #5676b7; border: 1px solid #e6ebf3; border-radius: 8px; }
.ds--company .xh-steps li a strong { font-size: 12px; }
.ds--company .xh-tiles a { padding: 20px; border: 1px solid #e6ebf2; border-radius: 8px; background: #fff; box-shadow: none; }
.ds--company .xh-tiles a:hover { border-color: #b7c8ed; box-shadow: none; transform: none; }
.ds--company .xh-tiles strong { font-size: 13px; }
.ds--company .xh-tiles span { font-size: 11.5px; color: #68768b; }
@media(max-width:1080px) {
 .ds--company .sh-main > .shell { padding: 24px 20px 86px; }
 .ds--company .sh-top { padding: 0 18px; height: 58px; min-height: 58px; }
 .ds--company .sh-side { position: fixed !important; height: 100vh; height: 100dvh; top: 0; }
 .ds--company .sh-workspace-label { display: none; }
}
@media(max-width:620px) {
 .ds--company .sh-main > .shell { padding: 20px 14px 86px; }
 .ds--company .sh-top__link { padding: 6px; font-size: 11px; }
 .ds--company .sh-top__link span { display: none; }
 .ds--company .xh-head { gap: 14px; }
 .ds--company .xh-head h1 { font-size: 24px; }
 .ds--company .xh-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
 .ds--company .xh-kpi { padding: 16px; min-height: 100px; }
 .ds--company .xh-kpi__icon { display: none; }
 .ds--company .xh-head__actions { width: 100%; }
 .ds--company .xh-head__actions .button { flex: 1; }
}
@media print { .sh { display: block; height: auto; overflow: visible; } .sh-side,.sh-top,.sh-mask,.sh-foot,.xc-mobile-nav { display: none !important; } .sh-main { height: auto; overflow: visible; } }

/* pages.css loads later on the home page; keep pale-surface CTA actions legible. */
body.ds--company .xh .xh-cta .button:not(.button--primary) { background:#fff; border-color:#cdd9ef; color:#365581; box-shadow:none; }
body.ds--company .xh .xh-cta .button:not(.button--primary):hover { background:#f8faff; border-color:#9fb7e4; color:#244f9b; }
