:root {
  color-scheme: light;
  --ink: #192d30;
  --muted: #647577;
  --line: #dfe7e5;
  --paper: #f4f7f5;
  --white: #fff;
  --green: #16665c;
  --green-dark: #104f47;
  --mint: #eaf5ee;
  --nav: #132c2c;
  --radius: 18px;
  font-family: "Segoe UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 14px; line-height: 1.7; }
[hidden] { display: none !important; }
a { color: var(--green); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 4px; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .58; }
:focus-visible { outline: 3px solid #338f7b; outline-offset: 4px; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: clamp(26px, 2.7vw, 38px); line-height: 1.4; letter-spacing: -.8px; font-weight: 650; }
h2 { font-size: 23px; letter-spacing: -.5px; font-weight: 650; }
h3 { font-size: 17px; font-weight: 650; }
strong { font-weight: 650; }
small { font-size: 12px; }
code { font-family: Consolas, "Cascadia Code", monospace; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; background: var(--white); padding: 12px 18px; border: 2px solid var(--green); border-radius: 10px; }
.skip-link:focus { top: 12px; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 228px; padding: 34px 22px 26px; background: var(--nav); color: #f2f7f4; display: flex; flex-direction: column; z-index: 10; }
.brand { display: inline-flex; gap: 12px; align-items: center; color: inherit; font-size: 21px; font-weight: 650; line-height: 1.3; }
.brand:hover { text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 43px; height: 43px; background: #c8ebd5; color: #153e33; border-radius: 13px 13px 13px 4px; font-size: 23px; }
.brand-sub { display: block; font-size: 10px; font-weight: 400; letter-spacing: 2px; margin-top: 5px; opacity: .75; }
.nav-label { color: #94b0ac; font-size: 11px; letter-spacing: 2px; padding: 52px 13px 15px; }
.nav-link { display: flex; gap: 13px; align-items: center; color: #d3e1de; margin-bottom: 8px; padding: 13px; border-radius: 10px; transition: background .15s; }
.nav-link span { font: 11px Consolas, monospace; color: #93b2a9; }
.nav-link:hover, .nav-link:focus-visible { background: #254540; color: #fff; text-decoration: none; }
.sidebar-bottom { margin-top: auto; border-top: 1px solid #35504b; padding: 24px 8px 0; font-size: 12px; color: #d5e5df; }
.sidebar-bottom p { color: #91aaa3; margin: 10px 0 20px; }
.sidebar-bottom a { color: #b9dfcb; }
.sidebar-dot { display: inline-block; width: 6px; height: 6px; background: #baddad; border-radius: 50%; margin-right: 8px; }
.main-shell { margin-left: 228px; }
.topbar { height: 76px; padding: 0 42px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; background: #fafcfb; }
.breadcrumb { font-size: 13px; color: var(--muted); }
.breadcrumb span { color: #b3bfbc; margin: 0 15px; }
.environment-tag { border: 1px solid #cbded3; border-radius: 100px; color: #436652; padding: 4px 12px; font-size: 11px; letter-spacing: .6px; white-space: nowrap; }
.main-shell main { max-width: 1590px; margin: 0 auto; padding: 38px 42px 0; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 29px; }
.page-heading h1 { margin: 8px 0 9px; }
.page-heading p { color: var(--muted); }
.page-heading > .button, .page-heading > .actions { flex-shrink: 0; }
.eyebrow { display: block; font-size: 10px; font-weight: 650; letter-spacing: 2px; color: #648578; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 42px; padding: 9px 17px; border: 1px solid transparent; border-radius: 9px; font-size: 13px; font-weight: 600; line-height: 1.5; transition: background .15s, border-color .15s; text-align: center; }
.button:hover { text-decoration: none; }
.primary { background: var(--green); color: var(--white); border-color: var(--green); }
.primary:hover { background: var(--green-dark); }
.secondary { background: var(--white); border-color: #d3dfd9; color: var(--ink); }
.secondary:hover { border-color: #79978b; background: #f7faf8; }
.text-button { background: transparent; color: var(--muted); }
.text-button:hover { color: var(--green); background: #e8efea; }
.danger-button { background: #fff; color: #94432d; border-color: #ead5cd; }
.danger-button:hover { background: #fff4ee; }
.small-button { font-size: 12px; min-height: 36px; padding: 7px 12px; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.stat-card { border: 1px solid var(--line); background: var(--white); border-radius: 13px; padding: 20px 23px; }
.stat-card > span { color: #536a64; font-size: 12px; }
.stat-card strong { display: block; font-size: 32px; font-weight: 550; line-height: 1.4; margin-top: 9px; font-variant-numeric: tabular-nums; }
.stat-card small { color: #72827b; font-size: 11px; }
.section { margin-top: 42px; scroll-margin-top: 24px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 18px; }
.section-heading .eyebrow { margin-bottom: 5px; }
.subtle { color: var(--muted); font-size: 12px; }
.section-description { margin: -7px 0 18px; color: var(--muted); font-size: 12px; }
.panel, .release-card, .user-card, .feedback-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.release-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.release-card { overflow: hidden; }
.release-card-head { padding: 23px 24px 18px; border-bottom: 1px solid #edf1ee; background: linear-gradient(135deg, #fff, #f3f8f3); }
.card-topline { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.product-name { font-size: 12px; font-weight: 600; color: #5a7266; overflow-wrap: anywhere; }
.version-line { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }
.version-number { font-size: 25px; font-weight: 600; letter-spacing: -.5px; overflow-wrap: anywhere; }
.badge { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 6px; font-size: 11px; line-height: 1.5; color: #547464; background: #e7f1e9; overflow-wrap: anywhere; }
.badge-neutral { background: #edf0f2; color: #627178; }
.badge-warm { background: #fcf0d9; color: #856120; }
.badge-passed { background: #e7f2ec; color: #306848; }
.badge-failed { background: #fbedeb; color: #9f4a40; }
.badge-blocked { background: #fcf0d9; color: #856120; }
.release-body { padding: 20px 24px 23px; }
.release-meta { margin-top: 10px; color: var(--muted); font-size: 11px; }
.package-status { margin-bottom: 16px; padding: 11px 13px; border: 1px solid #dce5df; border-radius: 9px; background: #f1f5f2; color: #53685c; font-size: 12px; }
.package-status-pending { border-color: #e8d6a5; background: #fff9e9; color: #775b20; }
.release-notes { color: #586e66; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; margin: 0 0 21px; max-height: 230px; overflow: auto; }
.file-list { display: grid; gap: 12px; }
.file-row { border-top: 1px solid #eaf0ed; padding-top: 14px; }
.file-main { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.file-title { font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.file-size { color: var(--muted); font-size: 11px; margin-top: 3px; }
.file-main .button { flex-shrink: 0; }
.file-hash { margin-top: 8px; color: var(--muted); font-size: 11px; }
.file-hash summary { cursor: pointer; width: fit-content; }
.file-hash code { display: block; word-break: break-all; padding: 9px 11px; background: #f5f7f5; border-radius: 6px; margin-top: 7px; user-select: all; }
.empty-state { grid-column: 1 / -1; text-align: center; padding: 35px 20px; background: #fafcfb; border: 1px dashed #cbdcd3; border-radius: 13px; }
.empty-state strong { display: block; font-size: 15px; margin-bottom: 7px; }
.empty-state p { color: var(--muted); font-size: 12px; }
.filter-row { display: flex; gap: 12px; flex-wrap: wrap; padding: 21px 24px; border-bottom: 1px solid var(--line); }
label { display: flex; flex-direction: column; gap: 7px; font-size: 12px; color: #50645d; font-weight: 550; min-width: 0; }
input, select, textarea { width: 100%; min-width: 0; border: 1px solid #d6e0da; border-radius: 8px; padding: 10px 11px; background: #fff; color: var(--ink); font-size: 13px; font-weight: 400; line-height: 1.5; }
input::placeholder, textarea::placeholder { color: #899790; }
input:focus, select:focus, textarea:focus { border-color: #648c78; }
textarea { resize: vertical; min-height: 98px; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--green); width: 16px; height: 16px; margin: 0; flex-shrink: 0; }
.filter-row > label { min-width: 120px; flex: 1; }
.filter-row .grow { flex: 1.8; }
.timeline { margin: 0; padding: 27px 28px 27px 49px; list-style: none; }
.timeline-item { position: relative; padding: 0 0 26px 22px; border-left: 1px solid #d9e4dc; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before { content: ""; width: 9px; height: 9px; border: 3px solid #fff; outline: 1px solid #b3caba; background: #7a9d81; border-radius: 50%; position: absolute; left: -8px; top: 7px; }
.timeline-meta { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; font-size: 11px; color: var(--muted); margin-bottom: 8px; }
.timeline-item h3 { font-size: 14px; overflow-wrap: anywhere; }
.timeline-detail { color: #65766d; font-size: 12px; margin-top: 6px; white-space: pre-wrap; overflow-wrap: anywhere; }
.disclosure { background: #fff; border: 1px solid var(--line); border-radius: 13px; margin: 15px 0; }
.disclosure > summary { cursor: pointer; padding: 18px 21px; font-size: 13px; font-weight: 600; }
.disclosure > summary span { font-size: 11px; font-weight: 400; color: var(--muted); margin-left: 15px; }
.disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-disclosure .form-grid { padding: 23px; }
.full-width { grid-column: 1 / -1; }
.form-footer { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding-top: 3px; }
.form-footer .button { flex-shrink: 0; }
.helper { font-size: 11px; color: var(--muted); font-weight: 400; line-height: 1.75; }
.password-panel { padding: 22px; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; border: 1px solid #ddc28e; background: #fffbec; border-radius: 13px; margin: 18px 0; }
.password-panel h3 { font-size: 15px; }
.password-panel code { display: block; user-select: all; font-size: 20px; color: #624c1b; overflow-wrap: anywhere; padding: 10px 0; }
.password-panel > div { min-width: 0; }
.password-panel .button { flex-shrink: 0; }
.user-list { display: grid; gap: 15px; }
.user-card { padding: 23px; }
.user-header { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.user-name { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.user-name h3 { overflow-wrap: anywhere; }
.user-detail { display: flex; flex-wrap: wrap; gap: 6px 15px; margin-top: 7px; font-size: 11px; color: var(--muted); overflow-wrap: anywhere; }
.grant-summary { padding-top: 17px; display: grid; gap: 8px; }
.grant-summary-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
.permission-editor { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 17px; }
.permission-editor > summary { font-weight: 600; font-size: 12px; color: var(--green); cursor: pointer; }
.permission-editor .form-grid { margin-top: 20px; }
.permissions { border: 0; margin: 0; padding: 0; }
.permissions legend { padding: 0; color: #50645d; font-size: 12px; margin-bottom: 10px; }
.checkbox-row { display: flex; gap: 12px 24px; flex-wrap: wrap; }
.checkbox-label { flex-direction: row; align-items: center; font-weight: 400; gap: 8px; }
.permission-note { margin-top: 9px; }
.feedback-list { display: grid; gap: 12px; }
.feedback-card { padding: 20px 23px; }
.feedback-top { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 9px; }
.feedback-top > div { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.feedback-comment { margin-top: 13px; color: #556c61; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-meta { font-size: 11px; color: var(--muted); margin-top: 10px; }
.compact-filter { flex-direction: row; align-items: center; gap: 10px; white-space: nowrap; }
.compact-filter select { width: auto; min-width: 106px; }
.page-footer { margin-top: 44px; padding: 22px 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; color: #7d8e84; font-size: 11px; }
.notice { padding: 13px 18px; margin-bottom: 24px; border-radius: 10px; border: 1px solid #c7dcd0; background: #eaf4ed; color: #335d45; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.notice.error { background: #fff2ed; border-color: #edcbbd; color: #95432a; }
.notice.warning { background: #fff9e9; border-color: #e8d6a5; color: #775b20; }
.loading-panel { padding: 100px 20px; text-align: center; color: var(--muted); }
.loading-dot { display: inline-block; width: 12px; height: 12px; background: #6c9f7b; border-radius: 50%; margin-bottom: 15px; animation: breathe 1.5s infinite; }
@keyframes breathe { 50% { opacity: .25; transform: scale(.75); } }
.auth-card { max-width: 620px; margin: 50px auto; padding: 40px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.auth-card h1 { font-size: 27px; margin: 10px 0 15px; }
.auth-card p { color: var(--muted); }
.auth-card .actions { margin: 25px 0 20px; }
.portal-header { min-height: 90px; display: flex; align-items: center; justify-content: space-between; padding: 19px max(28px, calc((100vw - 1160px) / 2)); gap: 20px; background: #fafcfb; border-bottom: 1px solid var(--line); }
.portal-header .brand { font-size: 20px; }
.portal-main { max-width: 1216px; padding: 40px 28px 0; margin: 0 auto; }
.login-layout { display: grid; grid-template-columns: 1fr 440px; gap: 90px; align-items: center; min-height: calc(100vh - 210px); padding: 25px 0 50px; }
.login-intro h1 { font-size: clamp(46px, 5vw, 66px); font-weight: 600; line-height: 1.2; letter-spacing: -3px; margin: 25px 0; }
.login-intro > p { color: var(--muted); max-width: 370px; line-height: 1.9; }
.intro-steps { list-style: none; padding: 0; margin: 35px 0 0; display: grid; gap: 24px; }
.intro-steps li { display: flex; align-items: flex-start; gap: 17px; }
.intro-steps li > span { font: 11px Consolas, monospace; color: #60836d; border: 1px solid #c8dace; border-radius: 50%; width: 29px; height: 29px; display: grid; place-items: center; flex-shrink: 0; margin-top: 2px; }
.intro-steps strong { font-size: 13px; }
.intro-steps p { font-size: 12px; color: var(--muted); margin-top: 3px; }
.login-card { background: #fff; border: 1px solid #dce6df; border-radius: 23px; padding: 35px; box-shadow: 0 20px 60px #19332a08; }
.login-card h2 { margin-top: 10px; }
.login-card > p { color: var(--muted); font-size: 12px; margin-top: 10px; }
.stack-form { display: grid; gap: 19px; margin-top: 28px; }
.stack-form .button { min-height: 46px; margin-top: 4px; justify-content: space-between; }
.first-test-note { border-top: 1px solid var(--line); padding-top: 23px; margin-top: 27px; font-size: 11px; color: #62796a; }
.first-test-note strong { color: #426950; }
.first-test-note p { margin-top: 8px; }
.login-card > .text-button { margin-top: 10px; padding-left: 0; font-size: 11px; }
.portal-nav { display: flex; gap: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 23px; }
.portal-nav a { color: #496254; font-size: 13px; font-weight: 600; }
.context-note { display: flex; align-items: flex-start; gap: 12px; padding: 16px 19px; border-radius: 11px; background: #e9f0e8; font-size: 12px; color: #5b725e; }
.note-symbol { border: 1px solid #8dab8e; border-radius: 50%; height: 18px; width: 18px; text-align: center; font: 12px Georgia, serif; line-height: 16px; flex-shrink: 0; margin-top: 1px; }
.feedback-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; }
.feedback-form-panel { padding: 26px; }
.feedback-guide { padding: 29px 24px; background: #eaf0e7; border-radius: var(--radius); }
.feedback-guide h3 { margin: 14px 0 12px; font-size: 22px; line-height: 1.5; }
.feedback-guide p { color: #63765d; font-size: 12px; line-height: 1.9; margin-top: 9px; }
.feedback-guide > strong { font-size: 13px; }
.guide-divider { border-top: 1px solid #cddbc6; margin: 25px 0; }
.result-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.result-fieldset legend { font-size: 12px; color: #50645d; margin-bottom: 9px; }
.result-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.result-options label { border: 1px solid var(--line); border-radius: 9px; padding: 13px 11px; flex-direction: row; align-items: center; gap: 9px; cursor: pointer; }
.result-options label:has(input:checked) { border-color: #648e70; background: #eff6ef; }
.result-options small { display: block; font-size: 10px; font-weight: 400; color: var(--muted); margin-top: 3px; }
.feedback-history-heading { margin-top: 28px; }
@media (min-width: 1500px) { .main-shell main { padding-left: 56px; padding-right: 56px; } }
@media (max-width: 1150px) {
  .sidebar { width: 202px; padding-left: 16px; padding-right: 16px; }
  .main-shell { margin-left: 202px; }
  .main-shell main { padding: 30px 26px 0; }
  .topbar { padding: 0 26px; }
  .stat-card { padding: 17px; }
  .release-grid { grid-template-columns: 1fr; }
  .login-layout { gap: 45px; grid-template-columns: 1fr 420px; }
  .feedback-layout { grid-template-columns: minmax(0, 1fr) 230px; }
  body[data-page="portal"] .release-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .sidebar { position: static; width: auto; padding: 17px 24px; }
  .sidebar > .brand { width: fit-content; }
  .sidebar nav { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 17px; }
  .nav-link { padding: 8px 10px; margin: 0; font-size: 12px; }
  .nav-link span, .nav-label, .sidebar-bottom { display: none; }
  .main-shell { margin-left: 0; }
  .topbar { height: 55px; }
  .stats-grid { gap: 10px; }
  .login-layout { gap: 30px; grid-template-columns: 1fr 390px; }
  .login-intro h1 { font-size: 44px; }
  .login-intro .eyebrow { letter-spacing: 1px; }
  .feedback-layout { grid-template-columns: 1fr; }
  .feedback-guide { display: none; }
}
@media (max-width: 650px) {
  .portal-header { padding: 18px 20px; min-height: 78px; }
  .portal-header .environment-tag { font-size: 10px; padding: 4px 9px; letter-spacing: 0; }
  .portal-main { padding: 27px 18px 0; }
  .main-shell main { padding: 25px 18px 0; }
  .topbar { padding: 0 20px; }
  .page-heading { align-items: flex-start; flex-direction: column; gap: 17px; }
  .page-heading h1 { font-size: 27px; }
  .page-heading p { font-size: 12px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-card strong { font-size: 28px; }
  .section { margin-top: 32px; }
  .section-heading { align-items: flex-start; }
  .section-heading h2 { font-size: 21px; }
  .section-heading > .subtle { max-width: 96px; text-align: right; margin-top: 19px; font-size: 10px; }
  body[data-page="portal"] .release-grid { grid-template-columns: 1fr; }
  .release-card-head, .release-body { padding: 20px; }
  .file-main { align-items: flex-start; }
  .file-main .button { padding: 7px 10px; }
  .filter-row { padding: 17px; gap: 10px; }
  .filter-row > label, .filter-row > .grow { flex: 1 1 calc(50% - 10px); min-width: 0; }
  .timeline { padding: 24px 18px 24px 32px; }
  .disclosure > summary span { display: block; margin: 4px 0 0 15px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-disclosure .form-grid { padding: 18px; }
  .form-footer { align-items: flex-start; flex-direction: column; gap: 13px; }
  .form-footer .button { width: 100%; }
  .user-card { padding: 18px; }
  .user-header { align-items: flex-start; }
  .user-header .button { flex-shrink: 0; }
  .password-panel { flex-direction: column; }
  .feedback-card { padding: 18px; }
  .login-layout { grid-template-columns: 1fr; padding-top: 0; }
  .login-intro h1 { font-size: 42px; margin: 17px 0; }
  .login-intro > p { max-width: none; font-size: 12px; }
  .intro-steps { display: none; }
  .login-card { padding: 26px 23px; border-radius: 17px; }
  .portal-nav { gap: 23px; }
  .portal-nav a { font-size: 12px; }
  .feedback-form-panel { padding: 20px; }
  .result-options { grid-template-columns: 1fr; }
  .result-options label { padding: 11px 13px; }
  .result-options label span { display: flex; gap: 12px; align-items: center; }
  .result-options small { margin: 0; }
  .auth-card { margin: 18px auto; padding: 27px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

.site-entry-nav{max-width:1180px;margin:0 auto;padding:18px 24px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px}.site-entry-nav a{color:#176b63;text-decoration:none}.site-entry-nav a:hover{text-decoration:underline}

#maintenance-list pre,#diagnostic-list pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:360px;overflow:auto}#maintenance-policy input[type=number]{width:110px}
