:root {
  color-scheme: light;
  --bg:#f5f5f7; --white:#fff; --line:#e5e5ea; --ink:#1d1d1f; --sub:#51515a; --quiet:#63636e;
  --accent:#0064d7; --accent-hover:#0055b9; --accent-soft:#eaf3ff; --focus:#007aff;
  --teal:#218455; --teal-dark:#166740; --teal-soft:#e8f6ee; --blue:#1c61a9; --blue-soft:#eaf3ff; --amber:#84500a; --amber-soft:#fff4dd;
  --raised:0 2px 5px #1d1d1f06, 0 1px 1px #1d1d1f04;
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei UI","Noto Sans CJK SC",system-ui,sans-serif;
  font-size: 14px;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); }
h1,h2,h3,p { margin:0; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.53; }
input,textarea,select { min-width:0; color:var(--ink); }
:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
[hidden] { display:none!important; }
.ico { flex:none; vertical-align:middle; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; fill:none; }
.sr,.skip:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip:focus { position:fixed; z-index:10; background:#fff; padding:10px; }
.sidebar { position:fixed; top:0; bottom:0; left:0; width:232px; display:flex; flex-direction:column; background:#f9f9fb; border-right:1px solid var(--line); z-index:3; }
.brand { min-height:84px; display:flex; align-items:center; gap:11px; padding:0 20px; }
.brand img { flex:none; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:16px; font-weight:750; white-space:nowrap; }
.brand small { color:var(--sub); font-size:11px; margin-top:3px; }
.sidebar nav { padding:8px 13px 0; }
.nav-label { margin:10px 11px 10px; color:var(--quiet); font-size:11px; font-weight:650; }
.nav-link { width:100%; min-height:43px; display:flex; align-items:center; gap:11px; border:0; background:transparent; padding:9px 11px; color:var(--sub); text-align:left; border-radius:7px; font-weight:550; margin-bottom:4px; }
.nav-link:hover { background:#ededf2; color:var(--ink); }
.nav-link.active { color:var(--accent-hover); background:var(--accent-soft); font-weight:680; }
.nav-link i { display:block; width:5px; height:5px; flex:none; border-radius:50%; background:var(--accent); margin-left:auto; }
.side-bottom { margin-top:auto; padding:12px 13px; }
.side-footer { border-top:1px solid var(--line); margin-top:11px; padding:15px 9px 4px; display:flex; align-items:center; gap:7px; color:var(--sub); font-size:11px; }
.live-dot { width:6px; height:6px; background:#18968b; border-radius:50%; }
.side-version { margin-left:auto; font-variant-numeric:tabular-nums; }
.workspace { margin-left:232px; min-width:0; min-height:100vh; display:flex; flex-direction:column; }
.topbar { min-height:65px; border-bottom:1px solid var(--line); background:#ffffffd9; backdrop-filter:saturate(150%) blur(18px); position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 30px; }
.crumb { display:flex; align-items:center; gap:9px; color:var(--sub); font-size:13px; }
.crumb strong { color:var(--ink); font-weight:650; }
.top-actions,.actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.top-actions { justify-content:flex-end; }
.identity { display:flex; align-items:center; gap:8px; font-size:12px; }
.identity span + span { max-width:160px; overflow-wrap:anywhere; }
.identity b,.identity small { display:block; }
.identity small { color:var(--sub); margin-top:2px; }
.avatar { width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--teal-soft); color:var(--teal-dark); font-weight:750; }
main { width:100%; max-width:1480px; margin:0 auto; padding:26px 30px 35px; }
.footer { margin:auto 30px 0; border-top:1px solid var(--line); padding:17px 0; display:flex; flex-wrap:wrap; gap:6px 15px; color:var(--quiet); font-size:12px; }
.footer span:first-child { font-weight:650; }
.footer .mobile-help { display:none; }
.btn,.icon-btn { background:#fff; border:1px solid #dcdce3; color:var(--ink); min-height:36px; border-radius:7px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:7px 12px; font-size:13px; font-weight:650; line-height:1.4; text-align:center; transition:background-color .16s,border-color .16s; }
.btn:not(:disabled):hover,.icon-btn:not(:disabled):hover { background:#f3f5f8; border-color:#c7d4e3; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:white; }
.btn.primary:not(:disabled):hover { background:var(--accent-hover); border-color:var(--accent-hover); }
.btn.text { border-color:transparent; background:transparent; color:var(--accent-hover); }
.btn.danger { background:#a7353c; color:white; border-color:#a7353c; }
.btn.danger:not(:disabled):hover { background:#902831; }
.btn.full { width:100%; justify-content:space-between; }
.icon-btn { padding:0; width:34px; min-width:34px; min-height:34px; }
.inline-link,.item-link { border:0; background:none; color:var(--accent-hover); padding:0; display:inline-flex; gap:5px; align-items:center; font-size:13px; font-weight:650; text-align:left; }
.inline-link:hover,.item-link:hover { text-decoration:underline; text-underline-offset:3px; }
.project-banner { position:relative; overflow:hidden; background:#edf4ff; border:1px solid #e0e9f7; color:var(--ink); border-radius:8px; min-height:204px; display:flex; align-items:center; padding:27px 31px; }
.blueprint { position:absolute; inset:auto -8px 50% auto; transform:translateY(50%); pointer-events:none; max-width:48%; object-fit:cover; object-position:left; }
.banner-content { position:relative; z-index:1; max-width:70%; }
.banner-kicker,.eyebrow { color:var(--accent-hover); font-size:11px; font-weight:700; }
.banner-kicker { display:flex; align-items:center; gap:8px; }
.banner-kicker span { width:7px; height:7px; border-radius:2px; background:var(--focus); }
.banner-kicker b { font-weight:400; opacity:.6; }
.banner-content h1 { font-size:34px; font-weight:750; margin:10px 0 7px; line-height:1.2; }
.banner-content p { color:var(--sub); font-size:14px; line-height:1.6; }
.panel { background:var(--white); border:1px solid var(--line); border-radius:8px; min-width:0; box-shadow:var(--raised); }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin:17px 0 21px; }
.metric { padding:14px 17px 13px; }
.metric-top { display:flex; align-items:center; gap:9px; color:var(--sub); font-size:13px; font-weight:650; }
.tile-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:7px; flex:none; }
.tile-icon.teal,.tag.teal { background:var(--teal-soft); color:var(--teal-dark); }
.tile-icon.blue { background:var(--blue-soft); color:var(--blue); }
.tile-icon.amber,.tag.amber { background:var(--amber-soft); color:var(--amber); }
.metric strong { display:block; font-size:30px; font-variant-numeric:tabular-nums; font-weight:750; margin:4px 0 1px; line-height:1.15; }
.metric-note { color:var(--quiet); font-size:11px; line-height:1.6; }
.overview-grid,.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(245px,310px); gap:16px; align-items:start; }
.overview-aside { display:grid; gap:14px; }
.panel-head { display:flex; gap:10px; align-items:center; justify-content:space-between; padding:17px 18px; }
.panel h2 { font-size:17px; font-weight:750; line-height:1.4; }
.panel-head p { font-size:12px; margin-top:5px; color:var(--sub); line-height:1.5; }
.side-panel { padding:16px; }
.aside-title { display:flex; align-items:center; gap:9px; }
.aside-title h2 { font-size:15px; }
.round-callout { border:1px solid #e5ebee; background:#f7f9fb; border-radius:6px; padding:13px; margin:15px 0 12px; }
.round-callout strong { display:block; font-size:15px; margin:8px 0 4px; overflow-wrap:anywhere; }
.round-callout > span:last-child { color:var(--sub); font-size:12px; line-height:1.6; }
.tag { display:inline-flex; align-items:center; background:#edf2f5; color:#465c6c; padding:3px 7px; border-radius:4px; font-size:11px; line-height:1.35; font-weight:650; white-space:nowrap; }
.check-tools { display:flex; flex-wrap:wrap; justify-content:space-between; gap:9px; padding:0 18px 13px; }
.segments { display:flex; align-items:stretch; border:1px solid #e9e9ef; background:#eeeeF3; border-radius:7px; padding:2px; gap:1px; }
.segments button { color:var(--sub); display:flex; align-items:center; gap:5px; border:1px solid transparent; border-radius:4px; background:none; padding:4px 8px; font-size:12px; font-weight:650; white-space:nowrap; }
.segments button span { font-size:10px; color:var(--quiet); }
.segments button[aria-pressed=true] { background:#fff; color:var(--ink); border-color:#e2e2e8; box-shadow:0 1px 2px #1d1d1f13; }
.language-picker { flex:none; min-height:32px; }
.language-picker button { justify-content:center; width:39px; }
.search { display:flex; min-height:34px; align-items:center; gap:6px; border:1px solid #dce5eb; border-radius:6px; color:var(--quiet); padding:0 8px; }
.search input { border:0; width:135px; padding:5px 0; background:none; font-size:12px; outline:none; }
.search:focus-within { border-color:var(--focus); }
.search input::placeholder { color:var(--quiet); }
.table-wrap { overflow:auto; }
.item-table { border-collapse:collapse; width:100%; table-layout:auto; font-size:13px; }
.item-table th,.item-table td { padding:10px 12px; text-align:left; border-top:1px solid var(--line); vertical-align:top; }
.item-table tr > :first-child { padding-left:18px; }
.item-table tr > :last-child { padding-right:18px; }
.item-table thead th { color:var(--quiet); white-space:nowrap; background:#f6f8fb; font-size:11px; font-weight:700; }
.group-row th { background:#f9fbfc; color:#435c6e; font-size:12px; font-weight:650; }
.group-row b { margin-right:7px; color:var(--teal-dark); }
.item-id { display:inline-flex; white-space:nowrap; color:var(--accent-hover); background:var(--accent-soft); padding:3px 6px; border-radius:4px; font:650 11px/1.45 ui-monospace,Consolas,monospace; }
.item-link { color:var(--ink); overflow-wrap:anywhere; }
.item-detail { margin-top:4px; color:var(--sub); font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.item-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.table-footer { border-top:1px solid var(--line); padding:11px 18px; font-size:11px; color:var(--quiet); }
.page-title { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:4px 0 19px; }
.page-title h1 { font-size:27px; line-height:1.35; margin-top:5px; overflow-wrap:anywhere; }
.page-title .actions { min-width:0; }
.page-title select { max-width:min(370px,100%); }
.empty { text-align:center; padding:29px 17px 34px; border-top:1px solid var(--line); }
.empty-icon { display:grid; place-items:center; width:45px; height:45px; margin:0 auto 11px; border-radius:8px; color:var(--teal-dark); background:var(--teal-soft); }
.empty h3 { font-size:16px; overflow-wrap:anywhere; }
.empty p { color:var(--sub); margin:7px auto 0; line-height:1.6; }
.empty .actions { justify-content:center; margin-top:13px; }
.record { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:9px; padding:14px 18px; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.record > div:first-child { min-width:0; }
.record h3 { font-size:15px; }
.record p { color:var(--sub); font-size:12px; margin-top:4px; }
.expert-identity { display:flex; gap:10px; align-items:center; }
.expert-identity .avatar { flex:none; }
.credential-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; border-top:1px solid var(--line); }
.credential-grid > div { min-width:0; padding:11px 17px; border-bottom:1px solid var(--line); }
.credential-grid dt { font-size:12px; color:var(--quiet); margin-bottom:5px; }
.credential-grid dd { margin:0; color:var(--ink); line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.profile-divider { padding-top:12px; border-top:1px solid var(--line); }
.profile-hint { padding:9px 11px; color:var(--quiet); background:var(--bg); border-radius:6px; line-height:1.5; font-size:12px; }
.draft-editor { margin:0 17px 15px; padding:14px 16px; border:1px solid #cfdef2; background:#f8fbff; border-radius:8px; scroll-margin-top:78px; }
.draft-editor fieldset { min-width:0; border:0; padding:0; margin:0; }
.draft-editor legend { color:var(--ink); font-size:16px; font-weight:700; margin-bottom:12px; }
.draft-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
.draft-wide { grid-column:1/-1; }
.draft-actions { justify-content:flex-end; margin-top:11px; }
.draft-editor .form-error { margin-top:9px; color:#a7353c; }
.rate-item { margin-top:6px; }
.score-item[id] { scroll-margin-top:155px; }
.dialog-body .credential-grid { background:#f8f8fa; border:1px solid var(--line); border-radius:7px; }
.stats-metrics { margin-top:0; }
.distribution { margin-bottom:15px; }
.distribution-bars { display:grid; gap:9px; padding:0 18px 18px; }
.distribution-bars > div { display:grid; grid-template-columns:16px minmax(0,1fr) 45px; gap:10px; align-items:center; font-size:12px; }
.distribution-bars b { text-align:right; font-variant-numeric:tabular-nums; }
.distribution-bars progress { height:8px; margin:0; accent-color:var(--accent); }
.distribution-bars progress::-webkit-progress-value { background:var(--accent); }
.distribution-bars :is(.dist-1,.dist-2)::-webkit-progress-value { background:#8198b6; }
.distribution-bars .dist-3::-webkit-progress-value { background:#4d87ce; }
.stats-table td:nth-child(n+3) { font-variant-numeric:tabular-nums; }
.scale { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; margin-top:13px; text-align:center; }
.scale > div { border:1px solid var(--line); border-radius:5px; padding:7px 2px; }
.scale b,.scale span { display:block; }
.scale b { color:var(--teal-dark); font-size:16px; }
.scale span { color:var(--sub); font-size:10px; margin-top:3px; overflow-wrap:anywhere; }
.survey-wrap { max-width:960px; }
.survey-instructions { padding:0 18px; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--sub); }
.survey-scale { padding:0 18px 15px; }
.survey-toolbar,.survey-save { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:13px 15px; margin:12px 0; }
.survey-toolbar > div:first-child { flex:1 1 170px; min-width:0; max-width:290px; }
.survey-toolbar .actions { min-width:0; }
.survey-toolbar b { font-size:13px; }
progress { width:100%; height:9px; margin-top:5px; border:0; accent-color:var(--teal); display:block; }
progress::-webkit-progress-bar { background:#e5edf0; border-radius:5px; }
progress::-webkit-progress-value { background:var(--teal); border-radius:5px; }
select,.field input,.field textarea,.comment textarea { border:1px solid #d7e1e9; border-radius:6px; padding:8px 9px; background:#fff; }
select { max-width:100%; }
.check-label { display:inline-flex; gap:5px; align-items:center; font-size:12px; }
input[type=checkbox],input[type=radio] { accent-color:var(--teal); }
.score-item { margin:0 0 10px; padding:15px 18px; }
.score-top { display:flex; align-items:center; gap:8px; color:var(--sub); font-size:12px; margin-bottom:7px; }
.score-item h3 { font-size:16px; margin-bottom:4px; overflow-wrap:anywhere; }
.score-item p { line-height:1.7; color:var(--sub); overflow-wrap:anywhere; }
.score-options { display:flex; gap:6px; border:0; padding:0; margin:13px 0 10px; min-width:0; }
.score-options legend { color:var(--sub); font-size:12px; font-weight:650; margin-bottom:6px; }
.score-options label { cursor:pointer; position:relative; min-width:0; flex:0 1 55px; }
.score-options input { position:absolute; opacity:0; }
.score-options label > span { display:grid; place-items:center; height:35px; border:1px solid var(--line); border-radius:5px; font-weight:750; }
.score-options input:checked + span { color:var(--teal-dark); background:var(--teal-soft); border-color:#69aea6; }
.score-options input:focus-visible + span { outline:2px solid var(--focus); outline-offset:2px; }
.comment summary { color:var(--teal-dark); font-size:12px; font-weight:650; cursor:pointer; }
.comment small { color:var(--sub); }
.comment textarea { display:block; width:100%; margin-top:7px; resize:vertical; }
.survey-save p { color:var(--sub); font-size:12px; margin-top:4px; }
.survey-save:has(.actions) { position:sticky; top:71px; z-index:2; }
#survey-items { scroll-margin-top:168px; }
dialog { max-width:min(520px,calc(100% - 24px)); width:100%; max-height:calc(100dvh - 30px); padding:0; border:1px solid #dbe4eb; border-radius:8px; color:var(--ink); box-shadow:0 18px 55px #102d4250; }
dialog::backdrop { background:#122b4080; }
.dialog-head,.dialog-foot { padding:14px 17px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.dialog-head { border-bottom:1px solid var(--line); }
.dialog-head h2 { font-size:17px; overflow-wrap:anywhere; min-width:0; }
.dialog-head .icon-btn { border-color:transparent; }
.dialog-body { padding:15px 17px; display:grid; gap:10px; }
.dialog-body p { color:var(--sub); line-height:1.65; overflow-wrap:anywhere; }
.dialog-body h3 { font-size:14px; }
.dialog-foot { justify-content:flex-end; border-top:1px solid var(--line); }
.field { display:grid; gap:5px; font-size:13px; font-weight:650; }
.field input,.field textarea { width:100%; font-weight:400; }
.field textarea { resize:vertical; }
.field-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.dialog-body .form-error { color:#a33237; }
#toast { position:fixed; bottom:16px; right:16px; z-index:8; background:#1b493f; color:white; border-radius:6px; padding:10px 12px; display:flex; align-items:center; gap:8px; max-width:calc(100vw - 32px); box-shadow:0 5px 24px #132c3830; }
#toast.error { background:#94373a; }
.startup { display:grid; min-height:60vh; place-items:center; color:var(--sub); }
@media(max-width:1120px) {
  .sidebar { width:195px; }
  .workspace { margin-left:195px; }
  .topbar { padding-inline:22px; }
  main { padding-inline:22px; }
  .footer { margin-inline:22px; }
  .overview-grid,.split { grid-template-columns:minmax(0,1fr) minmax(215px,260px); }
}
@media(max-width:920px) {
  .sidebar { width:170px; }
  .workspace { margin-left:170px; }
  .brand { padding-inline:12px; gap:8px; }
  .brand strong { font-size:14px; }
  .overview-grid,.split { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:660px) {
  .sidebar { position:static; width:100%; border-right:0; border-bottom:1px solid var(--line); }
  .brand { min-height:57px; padding:8px 13px; }
  .brand img { width:32px; height:32px; }
  .sidebar nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 9px 6px; gap:3px; }
  .nav-label,.nav-link i,.side-bottom { display:none; }
  .nav-link { justify-content:center; gap:3px; padding:5px 2px; font-size:11px; min-height:36px; margin:0; }
  .nav-link .ico { width:13px; height:13px; }
  .workspace { margin-left:0; min-height:calc(100vh - 100px); }
  .topbar { min-height:47px; padding:6px 12px; gap:4px; }
  .crumb { gap:4px; font-size:12px; }
  .crumb > span,.crumb > svg { display:none; }
  .topbar .btn { min-height:32px; padding:4px 7px; }
  .identity span + span { max-width:105px; }
  main { padding:14px 12px 22px; }
  .footer { margin-inline:12px; }
  .footer .mobile-help { display:inline-flex; }
  .project-banner { padding:17px 15px; min-height:164px; }
  .blueprint { opacity:.18; max-width:100%; right:-105px; }
  .banner-content { max-width:100%; }
  .banner-content h1 { font-size:24px; }
  .banner-content p { font-size:12px; }
  .metrics { gap:6px; margin:10px 0; }
  .metric { padding:7px 6px; }
  .metric-top { font-size:10px; gap:3px; }
  .metric-top .tile-icon { width:21px; height:21px; border-radius:4px; }
  .metric-top .ico { width:13px; height:13px; }
  .metric strong { font-size:22px; }
  .metric-note { font-size:10px; }
  .overview-aside { grid-template-columns:minmax(0,1fr); }
  .panel-head { padding:12px 9px; }
  .panel h2 { font-size:15px; }
  .check-tools { padding:0 9px 9px; }
  .item-table td,.item-table th { padding:8px 4px; }
  .item-table tr > :first-child { padding-left:7px; }
  .item-table tr > :last-child { padding-right:7px; }
  .item-table td .actions { gap:3px; }
  .item-table .icon-btn { width:28px; min-width:28px; min-height:28px; }
  .item-table thead th { font-size:10px; }
  .item-table .tag { white-space:normal; overflow-wrap:anywhere; }
  .page-title h1 { font-size:23px; }
  .search input { width:130px; }
  .survey-toolbar,.survey-save { padding:10px; }
  .survey-save:has(.actions) { top:54px; }
  :lang(en) .nav-link { text-align:center; }
  :lang(en) .crumb { display:none; }
  :lang(en) .top-actions { margin-left:auto; }
  :lang(en) .item-table thead th { white-space:normal; }
  .score-item { padding:12px; }
  .stats-table .panel-head { align-items:flex-start; flex-wrap:wrap; }
  .stats-table .item-table { min-width:430px; }
  .credential-grid { grid-template-columns:minmax(0,1fr); }
  .draft-editor { margin-inline:9px; padding:11px; }
  .draft-fields { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:360px) {
  .nav-link .ico { display:none; }
  .nav-link { white-space:normal; }
}
@media(prefers-reduced-motion:reduce) { .btn,.icon-btn { transition:none; } }
