:root {
  --canvas: #f7f8f7;
  --surface: #ffffff;
  --surface-soft: #fbfcfb;
  --ink: #20282b;
  --muted: #6d7779;
  --faint: #99a1a2;
  --line: #e3e7e4;
  --line-dark: #d6dcda;
  --accent: #376b53;
  --accent-deep: #28533f;
  --accent-soft: #eaf2ec;
  --accent-pale: #f5f8f5;
  --warning: #936a27;
  --warning-soft: #fbf3e0;
  --danger: #a94c4c;
  --danger-soft: #fbeded;
  --blue: #4c7186;
  --blue-soft: #edf4f7;
  --shadow: 0 16px 35px -30px rgba(29, 43, 35, .28);
  --font: "SF Pro Display", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
  --mono: "SF Mono", "Cascadia Mono", "Microsoft YaHei", monospace;
}

* { box-sizing: border-box; }
html { background: var(--canvas); }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); font-family: var(--font); font-size: 14px; line-height: 1.5; }
[hidden] { display: none !important; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(55, 107, 83, .23); outline-offset: 2px; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; display: block; flex: 0 0 auto; }
.icon-small { width: 16px; height: 16px; }

.login-screen { display: grid; min-height: 100dvh; grid-template-columns: minmax(0, 1.08fr) minmax(410px, .92fr); background: #f7f8f7; }
.login-intro { position: relative; display: flex; min-height: 100%; flex-direction: column; padding: clamp(34px, 6vw, 86px) clamp(32px, 8vw, 130px); overflow: hidden; background: #eef3ee; border-right: 1px solid var(--line); }
.login-intro::after { content: ""; position: absolute; right: -10vw; bottom: -14vw; width: min(43vw, 600px); height: min(43vw, 600px); border: 1px solid rgba(55,107,83,.13); border-radius: 50%; box-shadow: 0 0 0 42px rgba(55,107,83,.045), 0 0 0 84px rgba(55,107,83,.03); pointer-events: none; }
.login-brand { display: flex; align-items: center; gap: 10px; position: relative; z-index: 1; }.login-brand .brand-name { font-size: 17px; }.login-brand .brand-subtitle { font-size: 11px; }
.login-intro-copy { position: relative; z-index: 1; max-width: 620px; margin: auto 0; padding: 70px 0 52px; }.login-intro-copy .eyebrow { margin-bottom: 17px; }.login-intro-copy h1 { margin: 0; font-size: clamp(34px, 4vw, 59px); font-weight: 720; line-height: 1.12; letter-spacing: -.065em; }.login-intro-copy > p:last-child { max-width: 500px; margin: 20px 0 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.login-principles { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 680px; gap: 13px; }.login-principles > div { min-height: 100px; padding: 15px 14px; border: 1px solid rgba(55,107,83,.14); border-radius: 11px; background: rgba(255,255,255,.5); }.login-principles b { display: block; color: var(--accent-deep); font-size: 12px; }.login-principles span { display: block; margin-top: 7px; color: var(--muted); font-size: 10.5px; line-height: 1.55; }.login-copyright { position: relative; z-index: 1; margin: 32px 0 0; color: var(--faint); font-size: 10.5px; }
.login-panel-wrap { display: grid; place-items: center; padding: 38px; background: rgba(255,255,255,.8); }.login-panel { width: min(100%, 392px); }.login-panel-head h2 { margin: 0; color: var(--ink); font-size: 29px; letter-spacing: -.055em; }.login-panel-head > p:last-child { margin: 10px 0 0; color: var(--muted); font-size: 12px; }.login-fields { display: grid; gap: 15px; margin-top: 34px; }.login-field { display: grid; gap: 7px; color: #4d585b; font-size: 11px; font-weight: 650; }.login-field input { width: 100%; height: 45px; border: 1px solid var(--line-dark); border-radius: 8px; padding: 0 13px; background: #fff; color: var(--ink); font-size: 13px; transition: border-color .2s ease, box-shadow .2s ease; }.login-field input::placeholder { color: #adb4b5; }.login-field input:focus { border-color: #7e9e89; outline: 0; box-shadow: 0 0 0 3px rgba(55,107,83,.1); }.login-error { margin: 14px 0 -2px; padding: 9px 11px; border: 1px solid #f0cbcb; border-radius: 7px; background: var(--danger-soft); color: var(--danger); font-size: 11px; }.login-submit { width: 100%; min-height: 45px; margin-top: 25px; border-radius: 8px; font-size: 13px; }.login-help { display: grid; gap: 5px; margin-top: 20px; text-align: center; color: var(--faint); font-size: 10.5px; }.login-help button { border: 0; padding: 0; background: transparent; color: var(--accent); font-size: inherit; font-weight: 650; }.login-help button:hover { color: var(--accent-deep); text-decoration: underline; }.login-security { display: flex; align-items: flex-start; gap: 7px; margin-top: 31px; padding-top: 15px; border-top: 1px solid var(--line); color: var(--faint); font-size: 10px; line-height: 1.65; }.login-security .icon { width: 15px; height: 15px; color: var(--accent); }

.app-shell { min-height: 100dvh; display: grid; grid-template-columns: 252px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; display: flex; width: 252px; flex-direction: column; padding: 28px 16px 18px; background: rgba(255,255,255,.92); border-right: 1px solid var(--line); z-index: 20; }
.brand-block { display: flex; align-items: center; gap: 10px; padding: 4px 9px 22px; }
.brand-mark { position: relative; width: 25px; height: 25px; flex: 0 0 25px; }
.brand-mark::before { content: ""; position: absolute; width: 4px; height: 16px; left: 10px; bottom: 1px; background: var(--accent-deep); border-radius: 2px; }
.brand-mark span { position: absolute; display: block; width: 12px; height: 12px; background: #5c9274; border-radius: 50% 50% 45% 45%; }
.brand-mark span:nth-child(1) { left: 1px; top: 6px; }.brand-mark span:nth-child(2) { left: 7px; top: 1px; background: #477d60; }.brand-mark span:nth-child(3) { right: 1px; top: 8px; background: #72a587; }
.brand-name { margin: 0; font-size: 16px; font-weight: 680; letter-spacing: -.03em; }.brand-subtitle { margin: 1px 0 0; font-size: 11px; color: var(--muted); }
.account-switcher { display: flex; width: 100%; align-items: center; gap: 9px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--surface); text-align: left; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.account-switcher:hover { border-color: #c6d5ca; background: #fbfdfb; }.account-switcher:active { transform: scale(.985); }
.account-switcher .icon { margin-left: auto; color: var(--muted); }
.account-switcher[aria-expanded="true"] .icon { transform: rotate(90deg); }
.avatar { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #e8e1d4; color: #594f3f; font-size: 12px; font-weight: 700; }
.avatar-leader { background: #e3ede5; color: var(--accent-deep); }.avatar-top { width: 32px; height: 32px; }
.account-copy { display: grid; line-height: 1.2; }.account-copy b { font-size: 13px; font-weight: 650; }.account-copy span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.account-menu { position: absolute; top: 148px; right: 16px; left: 16px; display: none; padding: 7px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 19px 32px -23px rgba(29, 43, 35, .36); z-index: 32; }
.account-menu.open { display: block; animation: menu-in .18s cubic-bezier(.16,1,.3,1); }.account-menu-title { margin: 6px 7px 8px; color: var(--faint); font-size: 9.5px; font-weight: 700; letter-spacing: .08em; }.role-menu-option { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; width: 100%; align-items: center; gap: 8px; padding: 9px 7px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); text-align: left; }.role-menu-option:hover { background: #f2f6f3; }.role-menu-option.selected { background: var(--accent-soft); }.role-menu-option .icon { width: 17px; height: 17px; color: var(--accent); }.role-menu-option b { display: block; font-size: 11px; font-weight: 680; }.role-menu-option span { display: block; margin-top: 2px; color: var(--muted); font-size: 9.5px; line-height: 1.35; }.role-menu-check { display: grid; place-items: center; width: 17px; height: 17px; color: var(--accent); }.role-menu-check .icon { width: 15px; height: 15px; }.account-boundary { margin: 6px 1px 1px; padding: 9px 7px 3px; border-top: 1px solid var(--line); color: var(--faint); font-size: 9.5px; line-height: 1.55; }
@keyframes menu-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.main-nav { padding: 25px 0 0; }.nav-label { margin: 0 9px 7px; color: var(--faint); font-size: 10px; letter-spacing: .1em; font-weight: 700; }.nav-label-space { margin-top: 22px; }
.nav-item { display: flex; width: 100%; min-height: 39px; align-items: center; gap: 10px; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: #576064; text-align: left; transition: background .2s ease, color .2s ease, transform .2s ease; }
.nav-item:hover { background: #f1f4f1; color: var(--ink); }.nav-item:active { transform: scale(.985); }.nav-item.active { background: var(--accent-soft); color: var(--accent-deep); font-weight: 650; }.nav-item .icon { width: 18px; height: 18px; }.nav-count { margin-left: auto; display: grid; min-width: 19px; height: 19px; place-items: center; padding: 0 5px; border-radius: 999px; background: #f8e7e7; color: var(--danger); font-family: var(--mono); font-size: 10px; }
.nav-read { margin-left: auto; padding: 3px 6px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 9px; font-weight: 700; }
.sidebar-foot { margin-top: auto; padding: 16px 8px 0; border-top: 1px solid var(--line); }.sidebar-foot p { margin: 9px 0 0; color: var(--faint); font-size: 10.5px; line-height: 1.6; }.local-badge { display: flex; align-items: center; gap: 6px; color: var(--accent); font-size: 10px; font-weight: 600; }.local-badge .icon { width: 14px; height: 14px; }

.main-area { grid-column: 2; min-width: 0; }.topbar { position: sticky; top: 0; z-index: 10; height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 0 44px; background: rgba(247,248,247,.87); border-bottom: 1px solid rgba(227,231,228,.75); backdrop-filter: blur(16px); }.crumb { color: var(--muted); font-size: 12px; }.crumb span { margin: 0 8px; color: #c0c6c4; }.topbar-actions { display: flex; align-items: center; gap: 12px; }.week-picker, .icon-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); background: rgba(255,255,255,.7); color: #566064; transition: all .2s ease; }.week-picker:hover, .icon-button:hover { border-color: var(--line-dark); background: var(--surface); color: var(--ink); }.week-picker:active, .icon-button:active { transform: scale(.97); }.week-picker { gap: 7px; height: 34px; padding: 0 10px; border-radius: 7px; font-size: 12px; }.week-picker .icon { width: 16px; height: 16px; }.icon-button { position: relative; width: 34px; height: 34px; border-radius: 7px; }.icon-button .icon { width: 17px; height: 17px; }.icon-button i { position: absolute; top: 7px; right: 8px; width: 5px; height: 5px; border: 1px solid white; border-radius: 50%; background: var(--danger); }.mobile-menu { display: none; }
.icon-button.is-read { border-color: #c7dccd; background: var(--accent-soft); color: var(--accent); }
.page { max-width: 1450px; margin: 0 auto; padding: 40px 44px 58px; }

.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 27px; }.eyebrow { margin: 0 0 8px; color: var(--accent); font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.page-intro h1 { max-width: 680px; margin: 0; color: var(--ink); font-size: clamp(26px, 3.1vw, 39px); font-weight: 720; line-height: 1.12; letter-spacing: -.055em; }.page-intro p:not(.eyebrow) { max-width: 590px; margin: 11px 0 0; color: var(--muted); font-size: 13px; }.intro-actions { display: flex; gap: 9px; flex: 0 0 auto; }.button { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border: 1px solid transparent; border-radius: 6px; font-size: 12px; font-weight: 650; transition: background .2s ease, transform .2s ease, border-color .2s ease; }.button:active { transform: scale(.98); }.button .icon { width: 16px; height: 16px; }.button-primary { background: var(--ink); color: #fff; }.button-primary:hover { background: #333d40; }.button-secondary { border-color: var(--line-dark); background: var(--surface); color: #475154; }.button-secondary:hover { background: #f5f7f5; }

.metric-strip { display: grid; grid-template-columns: 1.15fr .95fr .95fr 1.2fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.metric { min-height: 112px; padding: 17px 22px 19px 0; border-right: 1px solid var(--line); }.metric:not(:first-child) { padding-left: 22px; }.metric:last-child { border-right: 0; }.metric-label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }.metric-label .icon { width: 14px; height: 14px; color: var(--accent); }.metric-value { margin: 11px 0 0; color: var(--ink); font-family: var(--mono); font-size: 31px; line-height: 1; letter-spacing: -.06em; }.metric-value small { margin-left: 3px; font-family: var(--font); font-size: 13px; letter-spacing: 0; }.metric-note { margin: 8px 0 0; color: var(--faint); font-size: 11px; }.metric-note.up { color: var(--accent); }.metric-note.alert { color: var(--danger); }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.52fr) minmax(315px, .8fr); gap: 18px; margin-top: 27px; }.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 19px 21px 0; }.panel-title { margin: 0; font-size: 14px; font-weight: 690; letter-spacing: -.02em; }.panel-subtitle { margin: 3px 0 0; color: var(--muted); font-size: 11px; }.text-link { display: inline-flex; align-items: center; gap: 3px; border: 0; padding: 3px 0; background: transparent; color: var(--accent); font-size: 11px; font-weight: 650; }.text-link:hover { color: var(--accent-deep); }.text-link .icon { width: 14px; height: 14px; }.score-figure { display: grid; grid-template-columns: 152px minmax(0, 1fr); align-items: center; gap: 20px; padding: 21px; }.score-ring { width: 136px; height: 136px; position: relative; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--accent) 0deg 283deg, #edf0ee 283deg 360deg); }.score-ring::before { content: ""; width: 112px; height: 112px; border-radius: 50%; background: var(--surface); }.score-ring-text { position: absolute; display: grid; place-items: center; line-height: 1; }.score-ring-text b { font-family: var(--mono); font-size: 28px; letter-spacing: -.08em; }.score-ring-text span { margin-top: 5px; color: var(--muted); font-size: 10px; }.score-breakdown { display: grid; gap: 12px; }.breakdown-row { display: grid; grid-template-columns: 87px 1fr 31px; gap: 10px; align-items: center; color: var(--muted); font-size: 11px; }.bar { height: 6px; overflow: hidden; border-radius: 5px; background: #edf0ee; }.bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }.breakdown-row b { color: #546063; font-family: var(--mono); font-size: 11px; font-weight: 600; text-align: right; }.breakdown-row.warning .bar i { background: #b88942; }.breakdown-row.warning b { color: var(--warning); }
.trend-panel { overflow: hidden; }.trend-chart { height: 150px; padding: 12px 21px 4px; }.trend-chart svg { width: 100%; height: 100%; overflow: visible; }.chart-grid { stroke: #e9edeb; stroke-width: 1; }.chart-line { fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }.chart-area { fill: #edf5ef; }.chart-dot { fill: var(--surface); stroke: var(--accent); stroke-width: 2.5; }.chart-x { fill: var(--faint); font-family: var(--mono); font-size: 10px; }.trend-foot { display: flex; align-items: center; gap: 16px; padding: 10px 21px 16px; border-top: 1px solid #eef0ee; color: var(--muted); font-size: 10.5px; }.trend-foot b { color: var(--accent); }
.health-panel { grid-column: 1; }.health-list { padding: 9px 21px 18px; }.health-row { display: grid; grid-template-columns: 1.1fr minmax(125px, 1.7fr) 43px 19px; align-items: center; gap: 12px; min-height: 49px; border-bottom: 1px solid #edf0ee; }.health-row:last-child { border-bottom: 0; }.health-name { font-size: 12px; font-weight: 620; }.health-context { color: var(--muted); font-size: 10.5px; }.health-score { font-family: var(--mono); font-size: 12px; text-align: right; }.health-chevron { color: var(--faint); }.mini-bar { width: 100%; height: 6px; overflow: hidden; border-radius: 99px; background: #edf0ee; }.mini-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }.mini-bar.warning i { background: #bd8d42; }.mini-bar.danger i { background: #bd6565; }
.risk-list { padding: 6px 19px 15px; }.risk-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 13px 2px; border-bottom: 1px solid #edf0ee; }.risk-row:last-child { border-bottom: 0; }.risk-dot { width: 7px; height: 7px; border-radius: 50%; background: #c46666; }.risk-dot.warn { background: #b88942; }.risk-main { min-width: 0; }.risk-main b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; font-weight: 620; }.risk-main span { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }.risk-tag { padding: 3px 6px; border-radius: 999px; background: var(--danger-soft); color: var(--danger); font-size: 9.5px; font-weight: 700; letter-spacing: .04em; }.risk-tag.warn { background: var(--warning-soft); color: var(--warning); }
.focus-panel { grid-column: 1 / -1; }.focus-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 0; margin-top: 14px; }.focus-route { padding: 0 21px 20px; }.route-item { display: grid; grid-template-columns: 24px 1fr 88px; gap: 10px; align-items: center; min-height: 53px; border-bottom: 1px solid #edf0ee; }.route-item:last-child { border-bottom: 0; }.route-order { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font-family: var(--mono); font-size: 10px; font-weight: 700; }.route-copy b { font-size: 11.5px; font-weight: 650; }.route-copy span { margin-left: 7px; color: var(--muted); font-size: 10.5px; }.route-state { justify-self: end; color: var(--accent); font-size: 10.5px; text-align: right; }.route-state.warn { color: var(--warning); }.focus-aside { margin: 0 20px 20px 0; padding: 16px; border-left: 1px solid var(--line); background: var(--accent-pale); }.focus-aside p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }.focus-aside b { display: block; margin: 0 0 8px; color: var(--ink); font-size: 12px; }.focus-aside .button { margin-top: 13px; }

.panel-full { margin-top: 19px; }.table-wrap { overflow-x: auto; padding: 10px 21px 17px; }.data-table { width: 100%; border-collapse: collapse; white-space: nowrap; }.data-table th { padding: 10px 8px; border-bottom: 1px solid var(--line); color: var(--faint); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-align: left; }.data-table td { padding: 13px 8px; border-bottom: 1px solid #edf0ee; color: #4d585b; font-size: 11.5px; }.data-table tr:last-child td { border-bottom: 0; }.data-table tr[data-reviewable] { cursor: pointer; }.data-table tr[data-reviewable]:hover td { background: #fafcf9; }.person-cell { display: flex; align-items: center; gap: 8px; }.person-cell .avatar { width: 25px; height: 25px; border-radius: 7px; font-size: 10px; }.person-cell b { display: block; color: var(--ink); font-size: 11.5px; }.person-cell span { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }.score-number { color: var(--ink); font-family: var(--mono); font-weight: 650; }.status { display: inline-flex; align-items: center; gap: 5px; color: var(--accent); font-size: 10.5px; }.status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.status.warning { color: var(--warning); }.status.danger { color: var(--danger); }.status.muted { color: var(--faint); }.table-button { border: 0; padding: 3px 0; background: transparent; color: var(--accent); font-size: 10.5px; font-weight: 700; }.table-button:hover { color: var(--accent-deep); }.table-button-danger { margin-left: 12px; color: var(--danger); }.table-button-danger:hover { color: #a72d39; }

.page-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 19px; }.filter-group { display: flex; flex-wrap: wrap; gap: 7px; }.filter { border: 1px solid var(--line); padding: 6px 10px; border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 10.5px; }.filter.active, .filter:hover { border-color: #bfd1c4; background: var(--accent-soft); color: var(--accent-deep); }.search-field { display: flex; align-items: center; width: 190px; gap: 7px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--faint); }.search-field .icon { width: 15px; height: 15px; }.search-field input { width: 100%; height: 31px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 11px; }

.workbench-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(290px, .9fr); gap: 18px; }.personal-hero { padding: 23px 24px; background: #fcfdfc; }.personal-hero-top { display: flex; align-items: center; gap: 11px; }.personal-hero-top .avatar { width: 42px; height: 42px; border-radius: 12px; font-size: 14px; }.personal-hero-top h2 { margin: 0; font-size: 18px; letter-spacing: -.04em; }.personal-hero-top p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }.personal-score { display: flex; align-items: flex-end; gap: 12px; margin-top: 26px; }.personal-score b { font-family: var(--mono); font-size: 43px; line-height: .9; letter-spacing: -.08em; }.personal-score span { color: var(--muted); font-size: 11px; }.personal-score i { display: inline-flex; margin-left: auto; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 10px; font-style: normal; font-weight: 700; }
.tree-panel { overflow: hidden; }.tree-list { padding: 12px 20px 19px; }.tree-root { padding: 12px 0; border-bottom: 1px solid #edf0ee; }.tree-root:last-child { border-bottom: 0; }.tree-root-title { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 650; }.tree-root-title .tree-node { width: 9px; height: 9px; border-radius: 3px; background: var(--accent); }.tree-branch { position: relative; margin: 11px 0 0 4px; padding-left: 17px; border-left: 1px solid #d8e2db; }.tree-branch::before { content: ""; position: absolute; top: 12px; left: 0; width: 12px; border-top: 1px solid #d8e2db; }.tree-branch b { font-size: 11.5px; }.tree-branch span { display: block; margin-top: 3px; color: var(--muted); font-size: 10.5px; }.tree-branch em { display: inline-block; margin: 6px 0 0; padding: 2px 6px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 9.5px; font-style: normal; }.tree-branch em.warn { background: var(--warning-soft); color: var(--warning); }
.todo-list { padding: 10px 20px 18px; }.todo { display: flex; align-items: flex-start; gap: 10px; padding: 12px 0; border-bottom: 1px solid #edf0ee; }.todo:last-child { border-bottom: 0; }.todo-check { display: grid; width: 17px; height: 17px; flex: 0 0 17px; place-items: center; border: 1px solid #bdc6c0; border-radius: 5px; color: white; }.todo.done .todo-check { border-color: var(--accent); background: var(--accent); }.todo-check .icon { width: 12px; height: 12px; }.todo-main { min-width: 0; }.todo-main b { display: block; font-size: 11.5px; font-weight: 650; }.todo-main span { display: block; margin-top: 3px; color: var(--muted); font-size: 10.5px; }.todo.done .todo-main b { color: var(--muted); text-decoration: line-through; text-decoration-color: #cbd2ce; }

.form-layout { display: grid; grid-template-columns: minmax(0, 1.23fr) minmax(280px, .77fr); gap: 18px; align-items: start; }.form-panel { padding: 24px; }.form-heading { margin-bottom: 22px; }.form-heading h2 { margin: 0; font-size: 19px; letter-spacing: -.04em; }.form-heading p { margin: 6px 0 0; color: var(--muted); font-size: 11.5px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.form-grid .form-field.wide { grid-column: 1 / -1; }.form-field { display: grid; gap: 6px; }.form-field label { color: #536063; font-size: 11px; font-weight: 650; }.form-field label small { margin-left: 5px; color: var(--faint); font-weight: 400; }.form-field input, .form-field select, .form-field textarea { width: 100%; border: 1px solid var(--line-dark); border-radius: 7px; background: #fff; color: var(--ink); font-size: 12px; transition: border-color .2s ease, box-shadow .2s ease; }.form-field input, .form-field select { height: 37px; padding: 0 10px; }.form-field textarea { min-height: 82px; padding: 9px 10px; resize: vertical; line-height: 1.55; }.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: #84a791; outline: 0; box-shadow: 0 0 0 3px rgba(55,107,83,.1); }.form-field .help { margin: 0; color: var(--faint); font-size: 10px; }.task-record-context { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 5px 9px; padding: 12px 13px; border: 1px solid #cbdccf; border-radius: 8px; background: #f8fcf8; }.task-record-context > span { display: inline-flex; align-items: center; gap: 5px; grid-row: span 2; color: var(--accent); font-size: 10px; font-weight: 700; }.task-record-context .icon { width: 14px; height: 14px; }.task-record-context b { overflow: hidden; color: var(--ink); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }.task-record-context small { color: var(--muted); font-size: 10px; line-height: 1.5; }.task-record-context.personal { border-style: dashed; background: #fcfdfc; }.upload-box { display: flex; align-items: center; justify-content: center; min-height: 72px; border: 1px dashed #b9c8bd; border-radius: 7px; background: var(--accent-pale); color: var(--accent); text-align: center; transition: background .2s ease; }.upload-box:hover { background: var(--accent-soft); }.upload-box input { position: absolute; width: 1px; height: 1px; opacity: 0; }.upload-copy { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 650; }.upload-copy .icon { width: 18px; height: 18px; }.form-action { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 22px; padding-top: 17px; border-top: 1px solid var(--line); }.form-action p { margin: 0; color: var(--faint); font-size: 10px; }.form-action p b { color: var(--accent); }.score-preview { position: sticky; top: 86px; overflow: hidden; }.score-preview-top { padding: 22px; background: var(--accent-deep); color: #fff; }.score-preview-top p { margin: 0; color: #c7d8cb; font-size: 10px; font-weight: 600; letter-spacing: .08em; }.preview-score { display: flex; align-items: baseline; gap: 6px; margin-top: 10px; }.preview-score b { font-family: var(--mono); font-size: 46px; line-height: 1; letter-spacing: -.09em; }.preview-score span { color: #d7e4d9; font-size: 11px; }.preview-status { display: inline-flex; margin-top: 12px; padding: 4px 7px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: #d9e8dd; font-size: 10px; }.preview-detail { padding: 12px 20px 17px; }.preview-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf0ee; color: var(--muted); font-size: 11px; }.preview-row:last-child { border-bottom: 0; }.preview-row b { color: var(--ink); font-family: var(--mono); font-size: 11px; }.score-preview-foot { padding: 14px 20px; border-top: 1px solid var(--line); background: #fafcfb; color: var(--muted); font-size: 10px; line-height: 1.65; }.score-preview-foot button { border: 0; padding: 0; background: transparent; color: var(--accent); font-size: inherit; font-weight: 700; }

.config-grid { display: grid; grid-template-columns: minmax(0, 1fr) 315px; gap: 18px; }.setting-list { padding: 6px 21px 17px; }.setting-row { display: grid; grid-template-columns: 1fr 115px 75px auto; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #edf0ee; }.setting-row:last-child { border-bottom: 0; }.setting-row b { font-size: 11.5px; }.setting-row span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }.setting-row input { width: 100%; height: 30px; border: 1px solid var(--line-dark); border-radius: 6px; padding: 0 8px; color: var(--ink); font-family: var(--mono); font-size: 10px; }.quiet-aside { padding: 20px; background: #fbfcfb; }.quiet-aside h3 { margin: 0; font-size: 13px; }.quiet-aside p { margin: 9px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.quiet-aside hr { border: 0; border-top: 1px solid var(--line); margin: 18px 0; }.quiet-aside ul { margin: 0; padding-left: 17px; color: var(--muted); font-size: 10.5px; line-height: 1.9; }
.account-flow { display: grid; grid-template-columns: repeat(4, 1fr); margin: 16px 21px 21px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }.account-flow-step { position: relative; min-height: 108px; padding: 17px 14px; border-right: 1px solid var(--line); background: #fcfdfc; }.account-flow-step:last-child { border-right: 0; }.account-flow-step b { display: block; color: var(--ink); font-size: 11.5px; }.account-flow-step span { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.55; }.flow-number { display: inline-grid; width: 20px; height: 20px; place-items: center; margin-bottom: 10px; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font-family: var(--mono); font-size: 10px; font-weight: 700; }.account-policy { margin: 0 21px 21px; padding: 13px 14px; border-left: 3px solid var(--accent); background: var(--accent-pale); color: var(--muted); font-size: 11px; line-height: 1.65; }.account-policy b { color: var(--accent-deep); }.account-state { display: inline-flex; align-items: center; gap: 5px; padding: 3px 6px; border-radius: 999px; background: var(--warning-soft); color: var(--warning); font-size: 9.5px; font-weight: 700; }.account-state.ready { background: var(--accent-soft); color: var(--accent); }.account-state::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }

.group-empty-compact { display: flex; min-height: 166px; align-items: center; gap: 15px; padding: 25px 21px; }.group-empty-compact .empty-mark, .group-empty-state .empty-mark { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: var(--accent-soft); color: var(--accent); }.group-empty-compact .empty-mark .icon, .group-empty-state .empty-mark .icon { width: 19px; height: 19px; }.group-empty-compact b { display: block; font-size: 12px; }.group-empty-compact p { max-width: 410px; margin: 5px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.65; }
.group-overview-list { padding: 7px 21px 18px; }.group-overview-row { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid #edf0ee; }.group-overview-row:last-child { border-bottom: 0; }.group-overview-row b { display: block; font-size: 11.5px; }.group-overview-row span:not(.status) { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.group-empty-state { padding: 38px 28px; text-align: left; }.group-empty-state h2 { margin: 16px 0 0; font-size: 19px; letter-spacing: -.04em; }.group-empty-state p { max-width: 620px; margin: 8px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.75; }.group-empty-state .button { margin-top: 18px; }.group-form { margin-bottom: 18px; padding: 24px; }.group-form .form-heading { margin-bottom: 22px; }.group-form .form-heading .eyebrow { margin-bottom: 6px; }.group-form-error { margin: 15px 0 -6px; padding: 9px 11px; border: 1px solid #efcaca; border-radius: 7px; background: var(--danger-soft); color: var(--danger); font-size: 10.5px; }.member-picker { min-width: 0; margin: 0; padding: 0; border: 0; }.member-picker legend { margin-bottom: 7px; color: #536063; font-size: 11px; font-weight: 650; }.member-picker legend small { margin-left: 5px; color: var(--faint); font-weight: 400; }.member-picker-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }.member-choice { display: grid; grid-template-columns: 14px 25px minmax(0,1fr); align-items: center; gap: 7px; min-height: 48px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: #fcfdfc; color: var(--ink); cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }.member-choice:hover { border-color: #bfd1c4; background: #f7faf7; }.member-choice:has(input:checked) { border-color: #9ebba6; background: var(--accent-soft); }.member-choice input { width: 14px; height: 14px; margin: 0; accent-color: var(--accent); }.member-choice .avatar { width: 25px; height: 25px; border-radius: 7px; font-size: 10px; }.member-choice > span:last-of-type { overflow: hidden; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }.member-choice i { grid-column: 2 / -1; overflow: hidden; color: var(--faint); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.group-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }.group-card { min-height: 190px; padding: 20px; }.group-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.group-card-head .eyebrow { margin-bottom: 5px; }.group-card h2 { margin: 0; font-size: 17px; letter-spacing: -.04em; }.group-card > p { min-height: 35px; margin: 12px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.65; }.group-members { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 16px; }.group-members span { padding: 3px 6px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-deep); font-size: 9.5px; font-weight: 650; }.group-members .muted-member { background: #f1f3f1; color: var(--faint); font-weight: 500; }.worktree-guidance { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 18px; padding: 22px 24px; background: #fbfcfb; }.worktree-guidance .eyebrow { margin-bottom: 5px; }.worktree-guidance h2 { margin: 0; font-size: 16px; letter-spacing: -.035em; }.worktree-guidance p:last-child { max-width: 680px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.worktree-guidance > span { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 11px; background: var(--accent-soft); color: var(--accent); }.worktree-guidance > span .icon { width: 21px; height: 21px; }

.dialog { width: min(630px, calc(100vw - 32px)); max-height: min(700px, calc(100dvh - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 85px -35px rgba(20, 34, 25, .38); }.dialog::backdrop { background: rgba(25, 35, 30, .22); backdrop-filter: blur(2px); }.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 25px 0; }.dialog-head .eyebrow { margin-bottom: 6px; }.dialog-head h2 { margin: 0; font-size: 19px; letter-spacing: -.04em; }.dialog-lead { margin: 15px 25px 0; color: var(--muted); font-size: 12px; line-height: 1.75; }.rule-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 20px 25px; }.rule-card { min-height: 109px; padding: 12px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fcfdfc; }.rule-card b { display: block; color: var(--accent); font-family: var(--mono); font-size: 18px; letter-spacing: -.06em; }.rule-card span { display: block; margin-top: 7px; font-size: 10.5px; font-weight: 700; }.rule-card small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.45; }.dialog-note { display: flex; align-items: flex-start; gap: 8px; margin: 0 25px; padding: 11px 12px; border-radius: 7px; background: var(--accent-pale); color: var(--accent-deep); font-size: 10.5px; line-height: 1.55; }.dialog-note .icon { width: 16px; height: 16px; flex: 0 0 16px; }.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; padding: 14px 25px 20px; border-top: 1px solid var(--line); }
.review-content { padding: 20px 25px 0; }.review-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fcfdfc; }.review-summary div { color: var(--muted); font-size: 10.5px; }.review-summary b { display: block; margin-top: 4px; color: var(--ink); font-size: 11.5px; }.review-summary .wide { grid-column: 1 / -1; }.review-score-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }.review-score-line label { color: var(--ink); font-size: 12px; font-weight: 700; }.range-with-value { display: flex; align-items: center; gap: 10px; }.range-with-value input { width: 180px; accent-color: var(--accent); }.range-with-value b { width: 33px; color: var(--accent); font-family: var(--mono); font-size: 18px; text-align: right; }.review-content .form-field { margin-top: 17px; }.review-content .form-field textarea { min-height: 74px; }.review-dialog .dialog-actions { margin-left: -25px; margin-right: -25px; }.system-score-note { margin-top: 10px; color: var(--faint); font-size: 10px; }.system-score-note b { color: var(--accent); }
.login-preview { margin-top: 16px; }.login-preview .wide { grid-column: 1 / -1; }.empty-state { padding: 38px 26px; text-align: left; }.empty-state .empty-mark { display: grid; width: 35px; height: 35px; place-items: center; margin-bottom: 17px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); }.empty-state .empty-mark .icon { width: 19px; height: 19px; }.empty-state h2 { margin: 0; font-size: 18px; letter-spacing: -.04em; }.empty-state p { max-width: 500px; margin: 8px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.7; }.empty-state .button { margin-top: 18px; }
.toast { position: fixed; right: 26px; bottom: 26px; z-index: 40; max-width: min(380px, calc(100vw - 36px)); padding: 11px 14px; border: 1px solid #c5d7c9; border-radius: 8px; background: #f5faf5; color: var(--accent-deep); box-shadow: 0 16px 35px -28px rgba(29, 43, 35, .38); font-size: 11px; font-weight: 650; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .25s ease, transform .25s ease; }.toast.show { opacity: 1; transform: translateY(0); }

.intro-actions { flex-wrap: wrap; justify-content: flex-end; }
.group-import-panel { margin-bottom: 18px; padding: 25px; }.group-import-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }.group-import-head .eyebrow { margin-bottom: 6px; }.group-import-head h2 { margin: 0; font-size: 19px; letter-spacing: -.04em; }.group-import-head p:last-child { max-width: 670px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.import-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 22px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }.import-steps > div { min-height: 102px; padding: 15px; border-right: 1px solid var(--line); background: #fcfdfc; }.import-steps > div:last-child { border-right: 0; }.import-steps i { display: grid; width: 20px; height: 20px; place-items: center; margin-bottom: 9px; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font-family: var(--mono); font-size: 10px; font-style: normal; font-weight: 700; }.import-steps b { display: block; font-size: 11px; }.import-steps span { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.55; }.group-import-dropzone { display: flex; min-height: 82px; align-items: center; gap: 12px; margin-top: 16px; padding: 14px 17px; border: 1px dashed #aec4b4; border-radius: 9px; background: var(--accent-pale); color: var(--accent); transition: background .2s ease, border-color .2s ease; }.group-import-dropzone:hover, .group-import-dropzone:focus-within { border-color: #7e9e89; background: var(--accent-soft); }.group-import-dropzone .icon { width: 22px; height: 22px; }.group-import-dropzone span { display: grid; gap: 3px; }.group-import-dropzone b { color: var(--accent-deep); font-size: 11px; }.group-import-dropzone small { color: #698171; font-size: 10px; line-height: 1.55; }.group-import-dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }.group-import-hint { margin: 11px 0 0; color: var(--faint); font-size: 10px; line-height: 1.65; }

.review-dialog { width: min(1040px, calc(100vw - 48px)); max-height: min(800px, calc(100dvh - 32px)); overflow-x: hidden; overflow-y: auto; }.review-dialog .dialog-head { padding: 34px 38px 0; }.review-dialog .dialog-head h2 { font-size: 25px; }.review-content { min-width: 0; padding: 24px 38px 0; }.review-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 0; overflow: hidden; border-radius: 10px; }.review-summary div { min-width: 0; padding: 17px 18px; border-right: 1px solid var(--line); }.review-summary div:nth-child(4) { border-right: 0; }.review-summary b { overflow-wrap: anywhere; font-size: 12px; line-height: 1.5; }.review-summary .wide { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 18px; align-items: start; border-top: 1px solid var(--line); border-right: 0; }.review-summary .wide b { margin-top: 0; }.system-score-note { display: flex; align-items: center; min-height: 46px; margin-top: 14px; padding: 10px 13px; border: 1px solid #d5e2d8; border-radius: 8px; background: var(--accent-pale); color: #64736a; font-size: 10.5px; line-height: 1.6; }.review-score-line { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 430px); align-items: center; gap: 28px; margin-top: 24px; }.review-score-line label { font-size: 15px; }.range-with-value { min-width: 0; width: 100%; }.range-with-value input { width: auto; min-width: 0; flex: 1; }.range-with-value b { width: 54px; font-size: 23px; }.range-with-value b::after { content: ' 分'; font-family: var(--font); font-size: 11px; letter-spacing: 0; }.review-content .form-field { margin-top: 23px; }.review-content .form-field textarea { min-height: 104px; }.review-dialog .dialog-actions { margin: 26px -38px 0; padding: 18px 38px 24px; }.review-dialog .dialog-actions .button { min-height: 42px; padding-left: 17px; padding-right: 17px; }

@media (max-width: 1050px) { .login-screen { grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); }.login-intro { padding-left: 56px; padding-right: 56px; }.login-intro-copy h1 { font-size: 42px; }.login-principles { grid-template-columns: 1fr; max-width: 330px; }.login-principles > div { min-height: auto; }.group-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.member-picker-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }.app-shell { grid-template-columns: 218px minmax(0, 1fr); }.sidebar { width: 218px; }.page, .topbar { padding-left: 30px; padding-right: 30px; }.sidebar-foot { display: none; }.metric { padding-right: 14px; }.metric:not(:first-child) { padding-left: 14px; }.score-figure { grid-template-columns: 132px minmax(0, 1fr); gap: 12px; }.score-ring { width: 118px; height: 118px; }.score-ring::before { width: 96px; height: 96px; }.focus-grid { grid-template-columns: 1fr; }.focus-aside { margin: 0 21px 20px; border-top: 1px solid var(--line); border-left: 0; }.form-layout { grid-template-columns: minmax(0, 1fr) 300px; } }
@media (max-width: 820px) { .login-screen { display: block; }.login-intro { min-height: auto; padding: 31px 27px 27px; border-right: 0; border-bottom: 1px solid var(--line); }.login-intro::after { right: -100px; bottom: -160px; width: 330px; height: 330px; }.login-intro-copy { margin: 46px 0 0; padding: 0 0 33px; }.login-intro-copy h1 { font-size: 34px; }.login-intro-copy > p:last-child { max-width: 560px; font-size: 12px; }.login-principles { grid-template-columns: repeat(3, 1fr); max-width: 650px; }.login-principles > div { padding: 12px; }.login-copyright { margin-top: 25px; }.login-panel-wrap { padding: 48px 27px 58px; }.group-card-grid { grid-template-columns: 1fr; }.member-picker-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }.app-shell { display: block; }.sidebar { width: 270px; transform: translateX(-102%); transition: transform .28s cubic-bezier(.16,1,.3,1); box-shadow: 10px 0 30px -25px rgba(0,0,0,.35); }.sidebar.open { transform: translateX(0); }.main-area { min-width: 0; }.mobile-menu { display: inline-flex; align-items: center; justify-content: center; width: 33px; height: 33px; margin-left: -6px; border: 0; background: transparent; color: var(--ink); }.topbar { height: 58px; padding: 0 18px; }.crumb { display: none; }.topbar-actions { margin-left: auto; }.topbar-actions .week-picker span { display: none; }.topbar-actions .week-picker { width: 34px; padding: 0; }.page { padding: 30px 18px 48px; }.metric-strip { grid-template-columns: 1fr 1fr; }.metric:nth-child(2) { border-right: 0; }.metric:nth-child(3), .metric:nth-child(4) { border-top: 1px solid var(--line); }.metric:nth-child(3) { padding-left: 0; }.metric:nth-child(4) { padding-left: 14px; border-right: 0; }.dashboard-grid, .workbench-grid, .form-layout, .config-grid { grid-template-columns: 1fr; }.score-preview { position: static; }.health-panel, .focus-panel { grid-column: auto; }.page-intro { align-items: flex-start; flex-direction: column; }.intro-actions { width: 100%; }.intro-actions .button { flex: 1; }.setting-row { grid-template-columns: 1fr 90px auto; }.setting-row span { grid-column: 1 / -1; }.setting-row input { grid-column: 2; }.setting-row .table-button { grid-column: 3; }.account-flow { grid-template-columns: 1fr 1fr; margin-left: 17px; margin-right: 17px; }.account-flow-step:nth-child(2) { border-right: 0; }.account-flow-step:nth-child(3), .account-flow-step:nth-child(4) { border-top: 1px solid var(--line); }.account-policy { margin-left: 17px; margin-right: 17px; }.rule-grid { grid-template-columns: repeat(2, 1fr); }.rule-card:last-child { grid-column: 1 / -1; min-height: auto; }.panel-head { padding-left: 17px; padding-right: 17px; }.health-list, .risk-list, .tree-list, .todo-list { padding-left: 17px; padding-right: 17px; }.score-figure { padding-left: 17px; padding-right: 17px; }.table-wrap { padding-left: 13px; padding-right: 13px; }.focus-route { padding-left: 17px; padding-right: 17px; }.form-panel { padding: 18px; } }
@media (max-width: 520px) { .login-intro { padding: 26px 21px 23px; }.login-intro-copy { margin-top: 36px; padding-bottom: 27px; }.login-intro-copy h1 { font-size: 31px; }.login-principles { grid-template-columns: 1fr; gap: 8px; }.login-principles > div { display: grid; grid-template-columns: 77px 1fr; align-items: center; min-height: auto; }.login-principles span { margin: 0; }.login-copyright { margin-top: 20px; }.login-panel-wrap { padding: 42px 21px 50px; }.login-panel-head h2 { font-size: 26px; }.topbar-actions .icon-button { display: none; }.page-intro h1 { font-size: 27px; }.metric { min-height: 97px; }.metric-value { font-size: 26px; }.score-figure { grid-template-columns: 1fr; }.score-ring { margin: 0 auto; }.breakdown-row { grid-template-columns: 84px 1fr 29px; }.route-item { grid-template-columns: 24px 1fr; }.route-state { grid-column: 2; justify-self: start; }.form-grid { grid-template-columns: 1fr; }.form-grid .form-field.wide { grid-column: auto; }.page-toolbar { align-items: flex-start; flex-direction: column; }.search-field { width: 100%; }.review-summary { grid-template-columns: 1fr; }.review-summary .wide { grid-column: auto; }.review-score-line { align-items: flex-start; flex-direction: column; }.range-with-value { width: 100%; }.range-with-value input { flex: 1; width: auto; }.dialog-head, .dialog-lead, .rule-grid, .dialog-note { margin-left: 18px; margin-right: 18px; }.dialog-head { padding-left: 0; padding-right: 0; }.dialog-actions { padding-left: 18px; padding-right: 18px; }.review-content { padding-left: 18px; padding-right: 18px; }.review-dialog .dialog-actions { margin-left: -18px; margin-right: -18px; } }

@media (max-width: 820px) { .group-import-panel { padding: 20px; }.import-steps { grid-template-columns: 1fr; }.import-steps > div { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.import-steps > div:last-child { border-bottom: 0; }.review-dialog { width: min(720px, calc(100vw - 32px)); }.review-dialog .dialog-head, .review-content { padding-left: 26px; padding-right: 26px; }.review-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }.review-summary div:nth-child(2) { border-right: 0; }.review-summary div:nth-child(3), .review-summary div:nth-child(4) { border-top: 1px solid var(--line); }.review-score-line { grid-template-columns: 1fr; gap: 13px; }.review-dialog .dialog-actions { margin-left: -26px; margin-right: -26px; padding-left: 26px; padding-right: 26px; }.intro-actions .button { flex: 1 1 132px; } }
@media (max-width: 520px) { .group-import-head { flex-direction: column; }.group-import-head .button { width: 100%; }.review-dialog { width: calc(100vw - 20px); }.review-dialog .dialog-head { padding: 24px 18px 0; }.review-dialog .dialog-head h2 { font-size: 21px; }.review-content { padding: 19px 18px 0; }.review-summary { grid-template-columns: 1fr; }.review-summary div, .review-summary div:nth-child(4) { border-right: 0; border-top: 1px solid var(--line); }.review-summary div:first-child { border-top: 0; }.review-summary .wide { grid-template-columns: 1fr; gap: 5px; }.review-score-line { gap: 11px; margin-top: 19px; }.range-with-value b { width: 51px; }.review-dialog .dialog-actions { flex-wrap: wrap; margin: 22px -18px 0; padding: 16px 18px 20px; }.review-dialog .dialog-actions .button { flex: 1 1 140px; } }

.review-dialog .dialog-actions { margin-left: 0; margin-right: 0; }

/* 领导操作与复核：用留白区分事实、处理动作和评分，不再把全部内容挤在同一张表里。 */
.table-actions { display: inline-flex; align-items: center; gap: 12px; }.table-button-quiet { color: var(--muted); font-weight: 600; }.table-button-quiet:hover { color: var(--accent-deep); }
.unsubmitted-row td { background: #fffdf9; }.unsubmitted-row:hover td { background: #fff9f0; }
#page:focus { outline: 0; }
.route-action { justify-self: end; border: 1px solid #c8d8cd; padding: 5px 8px; border-radius: 999px; background: #fff; color: var(--accent-deep); font-size: 10px; font-weight: 700; white-space: nowrap; transition: border-color .18s ease, background .18s ease, transform .18s ease; }.route-action:hover { border-color: #90ad99; background: var(--accent-soft); }.route-action:active, .button:active { transform: translateY(1px); }
.review-dialog { max-height: min(860px, calc(100dvh - 32px)); }.review-content { padding-top: 30px; }.review-summary { gap: 12px; overflow: visible; border: 0; border-radius: 0; background: transparent; }.review-summary div, .review-summary div:nth-child(4) { padding: 21px 22px; border: 1px solid var(--line) !important; border-radius: 10px; background: #fcfdfc; }.review-summary .wide { grid-column: 1 / -1; grid-template-columns: 172px minmax(0, 1fr); gap: 22px; border-top: 1px solid var(--line) !important; }.system-score-note { min-height: 52px; margin-top: 18px; padding: 13px 16px; }.review-operation-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 17px; padding: 16px 17px; border: 1px solid var(--line); border-radius: 10px; background: #fafcfb; }.review-operation-bar > div:first-child { display: grid; gap: 4px; }.review-operation-bar b { color: var(--ink); font-size: 11.5px; }.review-operation-bar span { color: var(--muted); font-size: 10px; line-height: 1.55; }.review-operation-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }.review-operation-buttons .button { min-height: 34px; padding: 7px 10px; font-size: 10.5px; }.review-operation-buttons .icon { width: 14px; height: 14px; }.review-score-line { margin-top: 30px; }.review-content .form-field { margin-top: 27px; }.review-content .form-field textarea { min-height: 124px; }.review-dialog .dialog-actions { margin-top: 32px; padding-top: 21px; padding-bottom: 26px; }
.assignment-dialog { width: min(670px, calc(100vw - 32px)); }.assignment-form { padding: 0 25px; }.assignment-form .dialog-lead { margin: 15px 0 22px; }.assignment-form .dialog-actions { margin: 26px -25px 0; padding: 18px 25px 22px; }.assignment-dialog textarea { min-height: 96px; }
.assignment-notice { margin: 0 0 18px; padding: 20px 22px; border: 1px solid #d5e2d8; border-radius: 10px; background: #fbfdfb; }.assignment-notice-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.assignment-notice-head .eyebrow { margin-bottom: 5px; }.assignment-notice-head h2 { margin: 0; font-size: 16px; letter-spacing: -.03em; }.assignment-notice-head > span { padding: 4px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 10px; font-weight: 700; }.assignment-notice-list { display: grid; gap: 10px; margin-top: 16px; }.assignment-notice-list > div { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid #e5ebe6; }.assignment-notice-list b { font-size: 11.5px; }.assignment-notice-list span { color: var(--muted); font-size: 10.5px; line-height: 1.6; }.return-notice { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 16px; padding: 14px 17px; border: 1px solid #efcfad; border-radius: 10px; background: #fffaf4; }.return-notice > div { display: flex; align-items: flex-start; gap: 9px; color: var(--warning); }.return-notice .icon { width: 17px; height: 17px; flex: 0 0 17px; }.return-notice span { display: grid; gap: 3px; }.return-notice b { color: #6e4d22; font-size: 11.5px; }.return-notice small { color: #7e6a51; font-size: 10.5px; line-height: 1.5; }
.person-form { margin-bottom: 18px; padding: 25px; }.person-form .form-heading { margin-bottom: 22px; }.permission-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 16px 21px 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fcfdfc; }.permission-levels > div { min-height: 106px; padding: 18px; border-right: 1px solid var(--line); }.permission-levels > div:last-child { border-right: 0; }.permission-levels b { display: block; color: var(--ink); font-size: 12px; }.permission-levels span { display: block; margin-top: 7px; color: var(--muted); font-size: 10.5px; line-height: 1.65; }.role-chip { display: inline-flex; align-items: center; padding: 4px 7px; border-radius: 999px; background: #f0f3f1; color: #627068; font-size: 10px; font-weight: 700; }.role-chip.admin { background: #edf4ef; color: var(--accent); }.role-chip.leader { background: #f4f0e7; color: #84652b; }.table-note { color: var(--faint); font-size: 10px; }
@media (max-width: 820px) { .review-summary { gap: 10px; }.review-summary div, .review-summary div:nth-child(2), .review-summary div:nth-child(3), .review-summary div:nth-child(4) { border: 1px solid var(--line) !important; }.review-operation-bar { align-items: flex-start; flex-direction: column; }.review-operation-buttons { justify-content: flex-start; }.assignment-dialog .dialog-head, .assignment-form { padding-left: 22px; padding-right: 22px; }.assignment-form .dialog-actions { margin-left: -22px; margin-right: -22px; padding-left: 22px; padding-right: 22px; }.permission-levels { grid-template-columns: 1fr; }.permission-levels > div { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.permission-levels > div:last-child { border-bottom: 0; } }
@media (max-width: 520px) { .table-actions { gap: 8px; }.route-action { grid-column: 2; justify-self: start; }.review-summary { grid-template-columns: 1fr; }.review-summary div, .review-summary div:first-child, .review-summary div:nth-child(4) { border: 1px solid var(--line) !important; }.review-summary .wide { grid-column: auto; grid-template-columns: 1fr; gap: 7px; }.review-operation-buttons { width: 100%; }.review-operation-buttons .button { flex: 1 1 132px; }.assignment-notice, .return-notice { padding: 16px; }.return-notice { align-items: flex-start; flex-direction: column; }.return-notice .button { margin-top: 2px; } }

/* 手机端：将宽表转换为逐条信息卡，避免通过横向拖动查看关键数据。 */
@media (max-width: 820px) {
  .page { padding: 24px 14px 42px; }
  .topbar { padding-left: 14px; padding-right: 14px; }
  .page-intro { gap: 15px; margin-bottom: 22px; }
  .page-intro h1 { font-size: clamp(25px, 7vw, 31px); line-height: 1.15; }
  .intro-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .intro-actions .button { width: 100%; min-height: 38px; padding-left: 10px; padding-right: 10px; }
  .metric { min-height: 100px; padding: 14px 12px !important; }
  .metric:nth-child(3) { padding-left: 12px !important; }
  .panel-head { align-items: flex-start; flex-direction: column; gap: 7px; padding: 18px 16px 0; }
  .panel-head > .panel-subtitle { margin: 0; }
  .page-toolbar { align-items: stretch; gap: 10px; }
  .filter-group { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .filter-group::-webkit-scrollbar { display: none; }
  .filter { flex: 0 0 auto; white-space: nowrap; }
  .table-wrap { overflow: visible; padding: 10px 14px 16px; }
  .responsive-table, .responsive-table tbody, .responsive-table tr, .responsive-table td { display: block; width: 100%; }
  .responsive-table { border-collapse: separate; border-spacing: 0; white-space: normal; }
  .responsive-table thead { display: none; }
  .responsive-table tbody { display: grid; gap: 10px; }
  .responsive-table tr { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
  .responsive-table tr:last-child td { border-bottom: 1px solid #edf0ee; }
  .responsive-table td { display: grid; grid-template-columns: 78px minmax(0, 1fr); align-items: start; gap: 9px; padding: 9px 12px; border-bottom: 1px solid #edf0ee; color: #4d585b; font-size: 11px; line-height: 1.55; }
  .responsive-table td::before { content: attr(data-label); color: var(--faint); font-size: 9.5px; font-weight: 700; letter-spacing: .04em; }
  .responsive-table td:first-child { display: block; padding: 12px; background: #fcfdfc; }
  .responsive-table td:first-child::before { display: none; }
  .responsive-table td:last-child, .responsive-table tr:last-child td:last-child { border-bottom: 0; }
  .responsive-table .person-cell { min-height: 28px; }
  .responsive-table .table-actions { flex-wrap: wrap; gap: 14px; }
  .responsive-table .table-button { min-height: 28px; text-align: left; }
  .unsubmitted-row td { background: #fffdf9; }
  .form-action { align-items: stretch; flex-direction: column; gap: 14px; }
  .form-action > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .form-action .button { width: 100%; }
  .person-form, .group-form, .group-import-panel { padding: 18px; }
  .worktree-guidance { align-items: flex-start; padding: 19px; }
  .assignment-dialog { width: calc(100vw - 20px); }
  .assignment-dialog .dialog-head, .assignment-form { padding-left: 18px; padding-right: 18px; }
  .assignment-form .dialog-actions { margin-left: -18px; margin-right: -18px; padding-left: 18px; padding-right: 18px; }
}

@media (max-width: 420px) {
  .sidebar { width: min(84vw, 290px); }
  .metric-strip { grid-template-columns: 1fr; }
  .metric, .metric:nth-child(2), .metric:nth-child(3), .metric:nth-child(4) { border-right: 0; border-top: 1px solid var(--line); }
  .metric:first-child { border-top: 0; }
  .intro-actions { grid-template-columns: 1fr; }
  .responsive-table td { grid-template-columns: 70px minmax(0, 1fr); padding-left: 10px; padding-right: 10px; }
  .responsive-table td:first-child { padding: 11px 10px; }
}

/* 工作记录、通知与动态看板 */
.notification-panel { position: absolute; top: 57px; right: 34px; z-index: 25; width: min(360px, calc(100vw - 32px)); overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 22px 52px -30px rgba(25,42,31,.42); }.notification-panel[hidden] { display: none; }.notification-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 16px 12px; border-bottom: 1px solid var(--line); }.notification-head > div { display: grid; gap: 3px; }.notification-head b { color: var(--ink); font-size: 12px; }.notification-head span { color: var(--faint); font-size: 10px; }.notification-list { padding: 6px 10px 10px; }.notification-item { position: relative; display: grid; width: 100%; gap: 4px; padding: 12px 28px 12px 7px; border: 0; border-bottom: 1px solid #edf0ee; background: transparent; color: var(--ink); text-align: left; }.notification-item:last-child { border-bottom: 0; }.notification-item:hover { background: #f7faf7; }.notification-item b { font-size: 11px; font-weight: 700; }.notification-item span { overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }.notification-item > i { position: absolute; top: 50%; right: 5px; display: grid; width: 16px; height: 16px; place-items: center; color: var(--faint); transform: translateY(-50%); }.notification-item > i .icon { width: 13px; height: 13px; }.notification-empty { margin: 0; padding: 20px 7px; color: var(--faint); font-size: 10.5px; text-align: center; }

.weekly-submit-state, .record-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 20px; padding: 15px 16px; border: 1px solid #d8e2da; border-radius: 10px; background: #fbfdfb; }.weekly-submit-state.submitted { border-color: #c9dccd; background: #f7fbf7; }.weekly-submit-state > div, .record-summary > div { display: grid; gap: 5px; }.weekly-submit-state b, .record-summary h2 { margin: 0; color: var(--ink); font-size: 12px; }.weekly-submit-state p, .record-summary p:not(.eyebrow) { max-width: 650px; margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.6; }.record-summary { margin-top: 18px; padding: 23px 24px; }.record-summary .eyebrow { margin-bottom: 0; }.record-summary h2 { font-size: 17px; letter-spacing: -.035em; }.draft-inbox { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 23px 24px; border-color: #ceded1; background: linear-gradient(135deg, #fbfdfb 0%, #f5faf6 100%); }.draft-inbox > div:first-child { display: grid; gap: 5px; min-width: 0; }.draft-inbox .eyebrow { margin: 0; }.draft-inbox h2 { margin: 0; color: var(--ink); font-size: 16px; letter-spacing: -.03em; }.draft-inbox p:not(.eyebrow) { margin: 0; overflow: hidden; color: var(--muted); font-size: 10.5px; line-height: 1.6; text-overflow: ellipsis; white-space: nowrap; }.draft-inbox-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }.draft-inbox-empty { border-style: dashed; background: #fcfdfc; }.form-action-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }.attachment-list { display: flex; flex-wrap: wrap; gap: 6px; min-height: 20px; }.attachment-entry { display: inline-flex; max-width: 100%; align-items: stretch; gap: 4px; }.attachment-chip { display: inline-flex; max-width: 100%; align-items: center; gap: 4px; padding: 4px 7px; overflow: hidden; border-radius: 999px; background: #eef5ef; color: var(--accent-deep); font-size: 9.5px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }.attachment-chip .icon { width: 12px; height: 12px; flex: 0 0 12px; }.attachment-empty { color: var(--faint); font-size: 10px; font-weight: 400; }.attachment-download-list { display: flex; flex-wrap: wrap; gap: 7px; }.attachment-link { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 5px 7px; overflow: hidden; border: 1px solid #cbd9ce; border-radius: 7px; background: #fff; color: var(--accent-deep); font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }.attachment-link:hover { border-color: #93af9b; background: var(--accent-soft); }.attachment-link .icon { width: 13px; height: 13px; flex: 0 0 13px; }.attachment-remove { display: grid; width: 28px; flex: 0 0 28px; place-items: center; border: 1px solid #e8caca; border-radius: 7px; background: #fffafa; color: #b85151; }.attachment-remove:hover { border-color: #d39b9b; background: #fceeee; }.attachment-remove .icon { width: 13px; height: 13px; }.default-password { display: flex; align-items: center; min-height: 37px; padding: 0 10px; border: 1px solid #cbd9ce; border-radius: 7px; background: #f8fcf8; color: var(--accent-deep); font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: .08em; }

.group-data-board, .management-actions { grid-column: 1 / -1; }.group-data-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0; margin: 15px 21px 21px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }.group-data-item { min-width: 0; padding: 16px; border-right: 1px solid var(--line); background: #fcfdfc; }.group-data-item:last-child { border-right: 0; }.group-data-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.group-data-head b { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.group-data-head span { flex: 0 0 auto; padding: 3px 6px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 9px; font-weight: 700; }.group-data-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 15px; margin-top: 16px; }.group-data-metrics small { display: block; color: var(--faint); font-size: 9.5px; }.group-data-metrics b { display: block; margin-top: 3px; color: var(--ink); font-family: var(--mono); font-size: 13px; }.group-data-metrics .alert-number { color: var(--danger); }.group-board-empty { margin: 15px 21px 21px; padding: 18px; border: 1px dashed #c6d4c9; border-radius: 9px; background: #fbfdfb; color: var(--muted); font-size: 11px; line-height: 1.7; }.management-action-list { margin: 7px 21px 20px; }.management-action-list > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 3px 12px; padding: 13px 0; border-bottom: 1px solid #edf0ee; }.management-action-list > div:last-child { border-bottom: 0; }.management-action-list span { grid-row: span 2; color: var(--faint); font-family: var(--mono); font-size: 9.5px; padding-top: 2px; }.management-action-list b { color: var(--ink); font-size: 11px; }.management-action-list p { margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.6; }.management-action-list .management-action-empty { display: block; padding: 19px 0; color: var(--faint); font-size: 10.5px; line-height: 1.6; }
.organization-data-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }.organization-data-actions .organization-data-detail { margin: 0; }.organization-trend { margin: 0 0 21px; padding: 15px 16px; border: 1px solid #d9e5db; border-radius: 10px; background: #fbfdfb; }.organization-trend-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.organization-trend-head > div { display: grid; gap: 5px; }.organization-trend-head b { color: var(--ink); font-size: 11.5px; }.organization-trend-head span { color: var(--muted); font-size: 10px; line-height: 1.55; }.organization-trend-head em { flex: 0 0 auto; padding: 3px 6px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 9px; font-style: normal; font-weight: 700; }.organization-trend-list { display: grid; gap: 10px; margin-top: 14px; }.organization-trend-row { display: grid; grid-template-columns: 64px minmax(60px, 1fr) 92px minmax(68px, auto); align-items: center; gap: 9px; }.organization-trend-row > b { color: var(--accent); font-family: var(--mono); font-size: 9.5px; }.organization-trend-bar { height: 7px; overflow: hidden; border-radius: 99px; background: #e9efea; }.organization-trend-bar i { display: block; min-width: 4px; height: 100%; border-radius: inherit; background: var(--accent); }.organization-trend-row span, .organization-trend-row small { color: var(--muted); font-size: 9.5px; white-space: nowrap; }.organization-trend-row small { color: var(--faint); text-align: right; }

/* 复核弹窗：内容容器实际获得内边距，避免字段、分数和按钮贴边。 */
.review-dialog .dialog-head { padding: 34px 40px 0; }.review-dialog .review-content { padding: 28px 40px 0; }.review-dialog .dialog-actions { margin: 30px 0 0; padding: 21px 0 28px; }.review-summary .wide > div { min-width: 0; }.review-summary .wide > div .attachment-empty { display: block; padding-top: 2px; }

@media (max-width: 820px) { .notification-panel { top: 51px; right: 12px; }.weekly-submit-state, .record-summary, .draft-inbox { align-items: flex-start; flex-direction: column; }.draft-inbox-actions { width: 100%; justify-content: flex-start; }.group-data-grid { grid-template-columns: 1fr 1fr; margin-left: 17px; margin-right: 17px; }.group-data-item:nth-child(2n) { border-right: 0; }.group-data-item:nth-child(n+3) { border-top: 1px solid var(--line); }.management-action-list { margin-left: 17px; margin-right: 17px; }.review-dialog .dialog-head { padding-left: 26px; padding-right: 26px; }.review-dialog .review-content { padding-left: 26px; padding-right: 26px; }.review-dialog .dialog-actions { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } }
@media (max-width: 620px) { .organization-trend-row { grid-template-columns: 54px minmax(56px, 1fr) auto; gap: 7px; }.organization-trend-row small { display: none; }.organization-data-actions { display: grid; }.organization-data-actions .table-button { width: 100%; } }
@media (max-width: 520px) { .notification-panel { right: 10px; width: calc(100vw - 20px); }.weekly-submit-state .button, .record-summary .button, .draft-inbox .button { width: 100%; }.draft-inbox-actions { display: grid; }.group-data-grid { grid-template-columns: 1fr; }.group-data-item, .group-data-item:nth-child(2n) { border-right: 0; border-top: 1px solid var(--line); }.group-data-item:first-child { border-top: 0; }.form-action-buttons { width: 100%; }.form-action-buttons .button { flex: 1 1 132px; }.review-dialog .dialog-head { padding-left: 18px; padding-right: 18px; }.review-dialog .review-content { padding-left: 18px; padding-right: 18px; }.review-dialog .dialog-actions { margin-top: 24px; padding-bottom: 22px; } }

/* 通知中心与个人历史：把“已保存”和“领导反馈”明确放在可随时进入的页面里。 */
.task-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr); gap: 18px; margin-top: 27px; }.task-dispatch-form { padding: 26px; }.task-dispatch-form .form-heading { margin-bottom: 22px; }.task-dispatch-form .form-heading h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.035em; }.task-dispatch-form .form-heading p:last-child { max-width: 650px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }.task-flow-card { padding-bottom: 22px; background: #fbfcfb; }.task-flow-list { display: grid; gap: 0; margin: 15px 21px 18px; padding: 0; list-style: none; }.task-flow-list li { position: relative; display: grid; gap: 4px; padding: 12px 0 12px 24px; border-bottom: 1px solid #e8eeea; }.task-flow-list li:last-child { border-bottom: 0; }.task-flow-list li::before { content: counter(taskflow, decimal-leading-zero); position: absolute; top: 12px; left: 0; color: var(--accent); font-family: var(--mono); font-size: 9px; font-weight: 700; counter-increment: taskflow; }.task-flow-list { counter-reset: taskflow; }.task-flow-list b { color: var(--ink); font-size: 11.5px; }.task-flow-list span { color: var(--muted); font-size: 10px; line-height: 1.55; }.task-flow-card > .button { margin-left: 21px; }.employee-task-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .78fr); gap: 18px; }.employee-task-card { min-width: 0; padding: 23px 24px; }.employee-task-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }.employee-task-head > div { display: grid; gap: 10px; }.employee-task-head h2 { margin: 0; color: var(--ink); font-size: 16px; letter-spacing: -.03em; }.task-due { flex: 0 0 auto; padding-top: 2px; color: var(--muted); font-family: var(--mono); font-size: 10px; }.employee-task-card > p { min-height: 36px; margin: 17px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.employee-task-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 17px; padding-top: 13px; border-top: 1px solid #e8eeea; color: var(--faint); font-size: 10px; }.employee-task-actions { display: flex; justify-content: flex-end; margin-top: 18px; }.assignment-notice > .button { margin-top: 15px; }.assignment-notice-list .status { margin-right: 2px; font-style: normal; }.table-note { display: block; margin-top: 3px; }
.task-attachments { display: grid; gap: 8px; margin-top: 16px; padding: 13px 0 0; border-top: 1px solid #e8eeea; }.task-attachments > b { color: var(--muted); font-size: 10px; font-weight: 700; }.task-attachment-list { display: flex; flex-wrap: wrap; gap: 6px; }.task-attachment-empty { margin: 0; color: var(--faint); font-size: 10px; }.data-table .task-attachment-list { margin-top: 7px; }.data-table .attachment-link { max-width: 190px; }.history-item-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
@media (max-width: 820px) { .task-layout, .employee-task-grid { grid-template-columns: 1fr; }.task-dispatch-form { padding: 20px; }.task-flow-card > .button { margin-left: 17px; }.task-flow-list { margin-left: 17px; margin-right: 17px; } }
@media (max-width: 520px) { .task-dispatch-form, .employee-task-card { padding: 18px; }.employee-task-head { align-items: flex-start; flex-direction: column; gap: 8px; }.task-due { padding-top: 0; }.employee-task-actions .button { width: 100%; } }
.notification-page { max-width: 920px; }.notification-page-list { padding: 8px 21px 20px; }.notification-item-page { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 16px; padding: 16px 38px 16px 4px; }.notification-item-page b { font-size: 12px; }.notification-item-page span { grid-column: 1; overflow: visible; white-space: normal; font-size: 10.5px; }.notification-item-page > i { right: 8px; }.notification-page-empty { padding: 32px 4px; color: var(--faint); font-size: 11px; text-align: center; }.history-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }.history-list, .feedback-list { padding: 8px 21px 20px; }.history-item, .feedback-item { padding: 14px 0; border-bottom: 1px solid #edf0ee; }.history-item:last-child, .feedback-item:last-child { border-bottom: 0; }.history-item.current-draft { margin: 8px 0; padding: 12px; border: 1px solid #d3e1d6; border-radius: 9px; background: #fbfdfb; }.history-item-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.history-item-head span, .feedback-item > span { color: var(--faint); font-family: var(--mono); font-size: 9.5px; }.history-item-head b { color: var(--accent); font-size: 10px; }.history-item strong, .feedback-item b { display: block; margin-top: 7px; color: var(--ink); font-size: 11.5px; line-height: 1.55; }.history-item p, .feedback-item p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }.history-empty { padding: 24px 0; color: var(--faint); font-size: 10.5px; line-height: 1.7; }.feedback-status { display: grid; gap: 7px; margin: 8px 0 4px; padding: 13px; border: 1px solid #d6e2d8; border-radius: 9px; background: #fbfdfb; }.feedback-status b { color: var(--ink); font-size: 11px; }.feedback-status + .feedback-item { margin-top: 5px; }
@media (max-width: 820px) { .history-grid { grid-template-columns: 1fr; }.notification-page-list, .history-list, .feedback-list { padding-left: 17px; padding-right: 17px; } }

/* 月度工作总结：突出汇总来源与领导收阅状态，避免把月报做成周报字段的简单复制。 */
.monthly-status-line { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; padding: 18px 21px; border: 1px solid #cfded2; border-radius: 12px; background: #f9fcf9; }.monthly-status-line > div { display: grid; gap: 6px; }.monthly-status-line b { color: var(--ink); font-size: 12px; }.monthly-status-line p { max-width: 720px; margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.65; }.monthly-feedback { margin-top: 16px; padding: 19px 21px; border-color: #d9e4db; background: #fbfdfb; }.monthly-feedback .eyebrow { margin-bottom: 5px; }.monthly-feedback p:last-child { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.75; white-space: pre-wrap; }.monthly-layout { grid-template-columns: minmax(0, 1.55fr) minmax(255px, .45fr); }.monthly-source { grid-column: 1 / -1; margin-bottom: 20px; padding: 16px 18px; border: 1px solid #d9e5db; border-radius: 10px; background: #fbfdfb; }.monthly-source .panel-head { margin: 0; }.monthly-source .panel-head h3 { margin: 0; color: var(--ink); font-size: 13px; }.monthly-source-list { display: grid; gap: 0; margin-top: 12px; }.monthly-source-list > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 4px 12px; padding: 11px 0; border-top: 1px solid #e7eee8; }.monthly-source-list span { grid-row: span 2; padding-top: 2px; color: var(--accent); font-family: var(--mono); font-size: 9.5px; font-weight: 700; }.monthly-source-list b { overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.monthly-source-list small { overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }.monthly-source-empty { padding: 19px 0 3px; color: var(--faint); font-size: 10.5px; line-height: 1.65; }.monthly-aside { align-self: start; padding: 24px; background: linear-gradient(150deg, #f8fcf8, #eef6ef); }.monthly-aside .eyebrow { margin-bottom: 6px; }.monthly-aside h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.035em; }.monthly-aside > p:not(.eyebrow) { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.75; }.monthly-aside hr { margin: 20px 0; border: 0; border-top: 1px solid #d6e3d8; }.monthly-aside > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid #e1ece3; }.monthly-aside > div b { color: var(--accent-deep); font-family: var(--mono); font-size: 20px; }.monthly-aside > div span { color: var(--muted); font-size: 10px; }.upload-box.disabled { cursor: not-allowed; opacity: .62; }.monthly-review-weeks { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }.monthly-review-weeks li { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 9px; }.monthly-review-weeks b { color: var(--accent); font-family: var(--mono); font-size: 9.5px; }.monthly-review-weeks span { color: var(--ink); font-size: 10.5px; line-height: 1.55; }
@media (max-width: 820px) { .monthly-layout { grid-template-columns: 1fr; }.monthly-status-line { align-items: flex-start; flex-direction: column; }.monthly-status-line .button { width: 100%; }.monthly-aside { order: -1; }.monthly-source-list > div { grid-template-columns: 68px minmax(0, 1fr); gap: 3px 9px; } }

/* 领导驾驶舱：把“表格汇总”升级为可判断、可下钻、可处理的首屏。 */
.cockpit-kpi-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); box-shadow: var(--shadow); }.cockpit-kpi-strip article { display: grid; min-height: 132px; align-content: start; gap: 8px; padding: 20px 21px; border-right: 1px solid var(--line); }.cockpit-kpi-strip article:last-child { border-right: 0; }.cockpit-kpi-strip span { color: var(--muted); font-size: 10.5px; }.cockpit-kpi-strip b { color: var(--ink); font-family: var(--mono); font-size: 31px; letter-spacing: -.07em; line-height: 1.08; }.cockpit-kpi-strip b small { margin-left: 3px; color: var(--muted); font-family: var(--font); font-size: 11px; letter-spacing: 0; }.cockpit-kpi-strip em { color: var(--faint); font-size: 10.5px; font-style: normal; }.cockpit-kpi-strip em.risk { color: var(--danger); }.cockpit-kpi-strip em.ready { color: var(--accent); }
.cockpit-workline { display: grid; grid-template-columns: minmax(240px, .66fr) minmax(520px, 1.34fr); align-items: center; gap: 25px; margin-bottom: 18px; padding: 22px 24px; border: 1px solid #d6e3d8; border-radius: 13px; background: linear-gradient(120deg, #fbfdfb, #f1f7f2); }.cockpit-workline .eyebrow { margin-bottom: 6px; }.cockpit-workline h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.045em; }.cockpit-workline > div > p:last-child { max-width: 470px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.68; }.cockpit-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }.cockpit-flow-step { position: relative; display: grid; min-width: 0; gap: 4px; padding: 3px 14px 3px 16px; border-left: 1px solid #dbe6dd; background: transparent; color: var(--ink); text-align: left; }.cockpit-flow-step:first-child { border-left: 0; }.cockpit-flow-step:hover { color: var(--accent-deep); }.cockpit-flow-step b { font-family: var(--mono); font-size: 21px; letter-spacing: -.06em; }.cockpit-flow-step span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.cockpit-flow-step::after { content: ""; position: absolute; right: -4px; top: 50%; width: 7px; height: 7px; border-top: 1px solid #b7c8ba; border-right: 1px solid #b7c8ba; transform: rotate(45deg) translateY(-50%); }.cockpit-flow-step:last-child::after { display: none; }
.cockpit-main-grid, .cockpit-secondary-grid { display: grid; grid-template-columns: minmax(0, 1.33fr) minmax(320px, .67fr); gap: 18px; margin-top: 18px; }.cockpit-trend-panel, .cockpit-risk-panel, .cockpit-organization-panel, .cockpit-summary-panel { min-width: 0; }.cockpit-chart { padding: 16px 21px 13px; }.cockpit-chart svg { display: block; width: 100%; height: 210px; overflow: visible; }.cockpit-grid-line { stroke: #e9eeea; stroke-width: 1; }.cockpit-line { fill: none; stroke: var(--accent); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }.cockpit-line.reviewed { stroke: #658d9e; stroke-dasharray: 6 5; }.cockpit-line.risk { stroke: #b96f55; stroke-width: 2.5; }.cockpit-dot { fill: var(--surface); stroke: var(--accent); stroke-width: 2.5; }.cockpit-chart-label { fill: var(--faint); font-family: var(--mono); font-size: 9px; }.cockpit-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; padding: 0 21px 17px; color: var(--muted); font-size: 10px; }.cockpit-legend span { display: inline-flex; align-items: center; gap: 5px; }.cockpit-legend i { display: inline-block; width: 13px; height: 3px; border-radius: 4px; background: var(--accent); }.cockpit-legend i.reviewed { background: #658d9e; }.cockpit-legend i.risk { background: #b96f55; }
.cockpit-risk-list { padding: 6px 21px 17px; }.cockpit-risk-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; width: 100%; align-items: center; gap: 10px; padding: 13px 0; border: 0; border-bottom: 1px solid #edf0ee; background: transparent; color: var(--ink); text-align: left; }.cockpit-risk-row:last-child { border-bottom: 0; }.cockpit-risk-row:hover b { color: var(--accent-deep); }.cockpit-risk-row > span:nth-child(2) { min-width: 0; }.cockpit-risk-row b, .cockpit-risk-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.cockpit-risk-row b { font-size: 11px; }.cockpit-risk-row small { margin-top: 3px; color: var(--muted); font-size: 9.5px; }.cockpit-risk-row em { font-size: 9.5px; font-style: normal; }.cockpit-risk-score { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; background: var(--accent-soft); color: var(--accent); font-family: var(--mono); font-size: 11px; font-weight: 700; }.cockpit-risk-score.warning { background: var(--warning-soft); color: var(--warning); }.cockpit-risk-score.danger { background: var(--danger-soft); color: var(--danger); }.cockpit-risk-empty { margin: 0; padding: 29px 0; color: var(--faint); font-size: 11px; line-height: 1.65; text-align: center; }
.cockpit-organization-list { display: grid; gap: 0; padding: 7px 21px 18px; }.cockpit-organization-row { display: grid; grid-template-columns: minmax(115px, .8fr) minmax(118px, 1.2fr) 34px auto; width: 100%; align-items: center; gap: 12px; padding: 13px 0; border: 0; border-bottom: 1px solid #edf0ee; background: transparent; color: var(--ink); text-align: left; }.cockpit-organization-row:last-child { border-bottom: 0; }.cockpit-organization-row:hover b { color: var(--accent-deep); }.cockpit-organization-copy { display: grid; min-width: 0; gap: 3px; }.cockpit-organization-copy b, .cockpit-organization-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.cockpit-organization-copy b { font-size: 11px; }.cockpit-organization-copy small { color: var(--muted); font-size: 9.5px; }.cockpit-organization-bars { display: grid; gap: 6px; }.cockpit-organization-bars i { display: block; height: 5px; overflow: hidden; border-radius: 5px; background: #e8eeea; }.cockpit-organization-bars i::before { content: ""; display: block; width: var(--score); height: 100%; border-radius: inherit; background: var(--accent); }.cockpit-organization-bars i:last-child::before { width: var(--submitted); background: #9ab9a3; }.cockpit-organization-row > em { color: var(--accent-deep); font-family: var(--mono); font-size: 11px; font-style: normal; text-align: right; }.cockpit-organization-row > span:last-child { color: var(--faint); font-size: 9.5px; text-align: right; }.cockpit-summary-panel { align-self: stretch; padding: 24px; background: linear-gradient(145deg, #f6fbf7, #edf5ef); }.cockpit-summary-panel .eyebrow { margin-bottom: 7px; }.cockpit-summary-panel h2 { margin: 0; color: var(--ink); font-size: 20px; letter-spacing: -.05em; }.cockpit-summary-panel > p:not(.eyebrow) { margin: 11px 0 0; color: var(--muted); font-size: 11px; line-height: 1.75; }.cockpit-summary-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }

/* 第二轮复核：目标闭环、同级组织比较、可执行协同与可恢复的数据。 */
.dashboard-error-state { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px; border-color: #efd3cc; background: #fffdfc; }.dashboard-error-state h2 { margin: 0; color: var(--ink); font-size: 19px; }.dashboard-error-state p:last-child { max-width: 650px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.cockpit-outcome-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 18px; margin-top: 18px; }.cockpit-outcome-panel, .cockpit-monthly-panel { min-height: 184px; }.cockpit-outcome-panel .panel-head { padding-bottom: 8px; }.outcome-number { display: flex; align-items: baseline; gap: 7px; padding: 4px 21px 0; }.outcome-number b { color: var(--ink); font-family: var(--mono); font-size: 39px; letter-spacing: -.075em; }.outcome-number span { color: var(--muted); font-size: 11px; }.outcome-track { height: 7px; margin: 16px 21px 0; overflow: hidden; border-radius: 99px; background: #e9efeb; }.outcome-track i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }.outcome-meta { display: flex; justify-content: space-between; gap: 12px; padding: 9px 21px 19px; color: var(--muted); font-size: 10.5px; }.cockpit-monthly-panel { display: flex; flex-direction: column; justify-content: space-between; padding: 23px 24px; background: linear-gradient(145deg, #fbfdfb, #f2f7f3); }.cockpit-monthly-panel .eyebrow { margin-bottom: 7px; }.cockpit-monthly-panel h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.04em; }.cockpit-monthly-panel .panel-subtitle { max-width: 460px; margin-top: 8px; line-height: 1.7; }.cockpit-monthly-panel .button { align-self: flex-start; margin-top: 19px; }.organization-level-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 21px 2px; }.cockpit-setup-panel { margin-top: 18px; overflow: hidden; }.setup-checklist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 16px 21px 0; overflow: hidden; border: 1px solid #dfe8e1; border-radius: 10px; }.setup-checklist button { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 2px 9px; min-height: 76px; padding: 15px; border: 0; border-right: 1px solid #dfe8e1; background: #fff; color: var(--ink); text-align: left; }.setup-checklist button:last-child { border-right: 0; }.setup-checklist button:hover { background: #f8fbf8; }.setup-checklist button b { grid-row: span 2; display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: #edf1ee; color: var(--faint); font-family: var(--mono); font-size: 10px; }.setup-checklist button.done b { background: var(--accent-soft); color: var(--accent); }.setup-checklist button span { overflow: hidden; font-size: 11px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }.setup-checklist button em { overflow: hidden; color: var(--muted); font-family: var(--mono); font-size: 9.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.setup-data-note { margin: 12px 21px 20px; color: var(--warning); font-size: 10.5px; line-height: 1.65; }.setup-data-note.ready { color: var(--accent); }.cockpit-risk-row { grid-template-columns: minmax(0, 1fr) auto; }.cockpit-risk-row > button:first-child { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; width: 100%; min-width: 0; align-items: center; gap: 10px; border: 0; padding: 0; background: transparent; color: var(--ink); text-align: left; }.cockpit-risk-row > button:first-child > span:nth-child(2) { min-width: 0; }.cockpit-risk-row > button:first-child em { font-size: 9.5px; font-style: normal; }.cockpit-risk-row > .table-button { white-space: nowrap; }.table-actions { display: inline-flex; gap: 12px; align-items: center; }.table-button.danger { color: var(--danger); }.table-button:disabled { cursor: not-allowed; opacity: .45; }.muted { color: var(--faint); }.table-empty { padding: 23px 8px; color: var(--faint); font-size: 11px; line-height: 1.65; text-align: center; }.system-version { font-size: 19px; letter-spacing: -.04em; }.button-danger { background: var(--danger); color: #fff; }.button-danger:hover { background: #a5343f; }.coordination-dialog, .restore-dialog { width: min(720px, calc(100% - 32px)); max-height: min(760px, calc(100vh - 32px)); margin: auto; overflow: auto; border: 1px solid var(--line); border-radius: 14px; padding: 0; background: var(--surface); box-shadow: 0 24px 80px rgba(35,48,42,.24); }.restore-dialog { width: min(560px, calc(100% - 32px)); }.coordination-dialog::backdrop, .restore-dialog::backdrop { background: rgba(25,34,30,.34); backdrop-filter: blur(3px); }.coordination-dialog-form, .restore-dialog-form { display: grid; gap: 18px; padding: 24px; }.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.dialog-heading .eyebrow { margin-bottom: 6px; }.dialog-heading h2 { margin: 0; color: var(--ink); font-size: 20px; letter-spacing: -.045em; }.dialog-heading p:not(.eyebrow) { max-width: 560px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.dialog-heading .icon-button { flex: 0 0 auto; }.form-error { margin: -6px 0 0; padding: 9px 10px; border: 1px solid #efd0d0; border-radius: 7px; background: var(--danger-soft); color: var(--danger); font-size: 10.5px; line-height: 1.55; }.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 3px; border-top: 1px solid var(--line); }.restore-dialog code { padding: 2px 5px; border-radius: 4px; background: #eef2ef; color: var(--accent-deep); font-family: var(--mono); font-size: .92em; }

/* 岗位工作树和评分规则：配置本身也是可见、可验证的产品能力。 */
.worktree-config-panel { margin-top: 0; overflow: hidden; }.worktree-config-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 24px 25px 18px; }.worktree-config-head .eyebrow { margin-bottom: 6px; }.worktree-config-head h2 { margin: 0; color: var(--ink); font-size: 18px; letter-spacing: -.04em; }.worktree-config-head > div > p:last-child { max-width: 650px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }.worktree-config-actions { display: flex; align-items: end; flex: 0 0 auto; gap: 9px; }.worktree-config-actions label { display: grid; gap: 5px; color: var(--muted); font-size: 9.5px; font-weight: 650; }.worktree-config-actions select { height: 36px; min-width: 140px; border: 1px solid var(--line-dark); border-radius: 6px; padding: 0 9px; background: #fff; color: var(--ink); font-size: 11px; }.worktree-counts { display: flex; gap: 0; margin: 0 25px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.worktree-counts span { display: inline-flex; align-items: baseline; gap: 5px; padding: 12px 20px 12px 0; margin-right: 20px; color: var(--muted); font-size: 10px; }.worktree-counts b { color: var(--accent-deep); font-family: var(--mono); font-size: 16px; }.worktree-node-list { padding: 8px 25px 17px; }.worktree-node-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) 45px auto; align-items: center; gap: 12px; min-height: 57px; border-bottom: 1px solid #edf0ee; }.worktree-node-row.depth-1 { margin-left: 24px; }.worktree-node-row.depth-2 { margin-left: 48px; }.worktree-level-tag { display: inline-flex; justify-content: center; width: fit-content; min-width: 58px; padding: 3px 6px; border-radius: 999px; background: #edf0ee; color: #657270; font-size: 9px; font-weight: 700; }.worktree-level-tag.annual { background: #e6f0e8; color: var(--accent-deep); }.worktree-level-tag.monthly { background: var(--blue-soft); color: var(--blue); }.worktree-level-tag.weekly { background: var(--warning-soft); color: var(--warning); }.worktree-node-copy { display: grid; min-width: 0; gap: 3px; }.worktree-node-copy b, .worktree-node-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.worktree-node-copy b { color: var(--ink); font-size: 11.5px; }.worktree-node-copy small { color: var(--muted); font-size: 9.5px; }.worktree-node-row > em { color: var(--accent-deep); font-family: var(--mono); font-size: 11px; font-style: normal; text-align: right; }.worktree-node-actions { display: flex; gap: 5px; justify-content: flex-end; }.worktree-empty { display: grid; gap: 5px; padding: 30px 25px; color: var(--faint); font-size: 10.5px; line-height: 1.65; }.worktree-empty b { color: var(--ink); font-size: 12px; }.worktree-form { margin: 0 25px 24px; padding: 21px; border: 1px solid #d2dfd5; border-radius: 10px; background: #fbfdfb; }.worktree-form-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 17px; }.worktree-form-head .eyebrow { margin-bottom: 4px; }.worktree-form-head h3 { margin: 0; color: var(--ink); font-size: 15px; letter-spacing: -.03em; }.personal-worktree { margin-top: 18px; }.personal-worktree .panel-head { padding-bottom: 12px; }.personal-worktree-list { padding: 0 21px 18px; }.personal-worktree-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 52px; border-top: 1px solid #edf0ee; }.personal-worktree-row > span { color: var(--faint); font-size: 9.5px; }.personal-worktree-row > div { display: grid; min-width: 0; gap: 3px; }.personal-worktree-row b, .personal-worktree-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.personal-worktree-row b { color: var(--ink); font-size: 11px; }.personal-worktree-row small { color: var(--muted); font-size: 9.5px; }.personal-worktree-row > em { color: var(--accent); font-family: var(--mono); font-size: 10px; font-style: normal; }.personal-worktree-empty { padding: 21px; background: #fbfdfb; }.personal-worktree-empty .eyebrow { margin-bottom: 6px; }.personal-worktree-empty h2 { margin: 0; font-size: 15px; }.personal-worktree-empty p { margin: 8px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.65; }
.score-rule-editor { padding: 0 28px 4px; }.score-rule-editor > p:first-child { margin: 0 0 15px; color: var(--muted); font-size: 10.5px; line-height: 1.65; }.score-rule-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }.score-rule-fields label { display: grid; grid-template-columns: minmax(0, 1fr) 64px; align-items: center; gap: 9px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 7px; color: #536063; font-size: 10px; }.score-rule-fields input { width: 64px; height: 31px; border: 1px solid var(--line-dark); border-radius: 5px; padding: 0 7px; color: var(--ink); text-align: right; }.score-rule-error { margin: 11px 0 0; padding: 8px 9px; border: 1px solid #efcaca; border-radius: 6px; background: var(--danger-soft); color: var(--danger); font-size: 10.5px; }

@media (max-width: 1080px) { .cockpit-workline { grid-template-columns: 1fr; }.cockpit-main-grid, .cockpit-secondary-grid, .cockpit-outcome-grid { grid-template-columns: 1fr; }.cockpit-summary-panel { min-height: 180px; }.setup-checklist { grid-template-columns: 1fr 1fr; }.setup-checklist button:nth-child(2) { border-right: 0; }.setup-checklist button:nth-child(n+3) { border-top: 1px solid #dfe8e1; } }
@media (max-width: 820px) { .cockpit-kpi-strip { grid-template-columns: 1fr 1fr; }.cockpit-kpi-strip article:nth-child(2) { border-right: 0; }.cockpit-kpi-strip article:nth-child(n+3) { border-top: 1px solid var(--line); }.cockpit-workline { padding: 20px; }.cockpit-flow { grid-template-columns: 1fr 1fr; gap: 9px; }.cockpit-flow-step { border: 1px solid #dbe6dd; border-radius: 8px; padding: 10px; }.cockpit-flow-step::after { display: none; }.cockpit-main-grid, .cockpit-secondary-grid { gap: 14px; }.cockpit-chart { padding-left: 16px; padding-right: 16px; }.cockpit-legend, .cockpit-risk-list, .cockpit-organization-list { padding-left: 17px; padding-right: 17px; }.dashboard-error-state { align-items: flex-start; flex-direction: column; }.cockpit-monthly-panel { padding: 20px; }.organization-level-tabs { padding-left: 17px; padding-right: 17px; }.setup-checklist { margin-left: 17px; margin-right: 17px; }.setup-data-note { margin-left: 17px; margin-right: 17px; }.coordination-dialog-form, .restore-dialog-form { padding: 20px; }.worktree-config-head { align-items: stretch; flex-direction: column; padding: 21px 19px 15px; }.worktree-config-actions { align-items: end; justify-content: space-between; }.worktree-counts { margin: 0 19px; }.worktree-node-list { padding-left: 19px; padding-right: 19px; }.worktree-form { margin-left: 19px; margin-right: 19px; }.worktree-node-row { grid-template-columns: 68px minmax(0, 1fr) 37px; gap: 8px; }.worktree-node-row.depth-1 { margin-left: 13px; }.worktree-node-row.depth-2 { margin-left: 26px; }.worktree-node-actions { grid-column: 2 / -1; justify-content: flex-start; margin-top: -8px; padding-bottom: 10px; }.score-rule-editor { padding-left: 22px; padding-right: 22px; } }
@media (max-width: 520px) { .cockpit-kpi-strip article { min-height: 116px; padding: 16px; }.cockpit-kpi-strip b { font-size: 26px; }.cockpit-workline { padding: 18px; }.cockpit-workline h2 { font-size: 16px; }.cockpit-flow { grid-template-columns: 1fr; }.cockpit-chart svg { height: 176px; }.cockpit-organization-row { grid-template-columns: minmax(102px, 1fr) minmax(82px, .8fr) 31px; gap: 8px; }.cockpit-organization-row > span:last-child { display: none; }.cockpit-summary-panel { padding: 20px; }.cockpit-summary-actions { display: grid; }.cockpit-summary-actions .button { width: 100%; }.worktree-config-actions { align-items: stretch; flex-direction: column; }.worktree-config-actions label { width: 100%; }.worktree-config-actions select { width: 100%; }.worktree-config-actions .button { width: 100%; }.worktree-counts span { margin-right: 13px; padding-right: 13px; }.worktree-node-row { grid-template-columns: 1fr auto; padding: 11px 0; }.worktree-level-tag { grid-column: 1; }.worktree-node-copy { grid-column: 1; }.worktree-node-row > em { grid-column: 2; grid-row: 1 / span 2; }.worktree-node-actions { grid-column: 1 / -1; margin-top: 1px; padding-bottom: 0; }.worktree-node-row.depth-1, .worktree-node-row.depth-2 { margin-left: 0; }.worktree-form { margin-left: 15px; margin-right: 15px; padding: 16px; }.score-rule-fields { grid-template-columns: 1fr; }.score-rule-editor { padding-left: 18px; padding-right: 18px; }.personal-worktree-list { padding-left: 17px; padding-right: 17px; } }

/* 驾驶舱视觉重构：以“判断—处理—下钻”为主线，修复流程、趋势图和组织对比的失配样式。 */
body { background: #f5f7f5; }
.app-shell { background: #f5f7f5; }
.sidebar { border-right-color: #e1e7e2; background: rgba(255,255,255,.96); box-shadow: 10px 0 32px -34px rgba(24,48,36,.42); }
.topbar { height: 68px; padding-left: 48px; padding-right: 48px; background: rgba(248,250,248,.91); border-bottom-color: #e3e8e4; }
.page { max-width: 1480px; padding: 38px 48px 84px; }
.page-intro { align-items: flex-start; margin-bottom: 30px; }
.page-intro > div:first-child { max-width: 690px; }
.page-intro h1 { max-width: 700px; font-size: clamp(28px, 2.6vw, 38px); font-weight: 710; line-height: 1.14; letter-spacing: -.055em; text-wrap: balance; }
.page-intro p:not(.eyebrow) { max-width: 640px; font-size: 12.5px; line-height: 1.75; }
.intro-actions { align-self: flex-end; flex-wrap: wrap; justify-content: flex-end; max-width: 520px; }
.button { min-height: 38px; border-radius: 9px; font-weight: 650; }
.button-primary { background: #20352b; box-shadow: 0 9px 18px -15px rgba(24,53,39,.9); }
.button-primary:hover { background: #2c4d3d; }
.button-secondary { border-color: #d9e1dc; background: rgba(255,255,255,.86); }
.panel { border-color: #e0e7e2; border-radius: 16px; box-shadow: 0 18px 38px -34px rgba(24,47,35,.48); }
.panel-head { padding: 23px 25px 0; }
.panel-title { font-size: 15px; font-weight: 700; letter-spacing: -.03em; }
.panel-subtitle { margin-top: 5px; font-size: 11px; line-height: 1.6; }
.eyebrow { color: #3e7459; letter-spacing: .08em; }

.cockpit-kpi-strip { margin-bottom: 20px; border-color: #dfe7e1; border-radius: 16px; box-shadow: 0 18px 38px -34px rgba(24,47,35,.52); }
.cockpit-kpi-strip article { position: relative; min-height: 142px; gap: 9px; padding: 24px 25px 21px; }
.cockpit-kpi-strip article::before { content: ""; position: absolute; top: 24px; left: 0; width: 2px; height: 36px; background: transparent; }
.cockpit-kpi-strip article:first-child::before { background: #3e7459; }
.cockpit-kpi-strip article:nth-child(3)::before { background: #a27a35; }
.cockpit-kpi-strip article:nth-child(4)::before { background: #b26853; }
.cockpit-kpi-strip span { color: #71807a; font-size: 11px; }
.cockpit-kpi-strip b { font-size: 34px; font-variant-numeric: tabular-nums; }
.cockpit-kpi-strip em { margin-top: auto; font-size: 10.5px; }

.cockpit-workline { grid-template-columns: minmax(260px,.74fr) minmax(520px,1.26fr); gap: 36px; margin-bottom: 20px; padding: 27px 29px; border-color: #d7e5db; border-radius: 18px; background: linear-gradient(130deg,#fdfefd 0%,#f2f8f3 100%); box-shadow: none; }
.cockpit-workline h2 { max-width: 380px; font-size: 20px; line-height: 1.25; }
.cockpit-workline > div > p:last-child { max-width: 410px; font-size: 11px; }
.workline-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.workline-flow li { position: relative; min-width: 0; }
.workline-flow li:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -1px; width: 8px; height: 8px; border-top: 1px solid #b7cbbd; border-right: 1px solid #b7cbbd; transform: translateY(-50%) rotate(45deg); z-index: 2; }
.workline-step { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; width: 100%; min-height: 78px; align-items: center; gap: 10px; padding: 11px 14px; border: 0; border-left: 1px solid #dce7df; background: transparent; color: var(--ink); text-align: left; transition: background .22s ease, transform .22s ease; }
.workline-flow li:first-child .workline-step { border-left: 0; }
.workline-step:hover { background: rgba(255,255,255,.72); transform: translateY(-1px); }
.workline-step:active { transform: translateY(0) scale(.985); }
.workline-index { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #e7f1e9; color: #356649; font-family: var(--mono); font-size: 10px; font-weight: 700; }
.workline-copy { display: grid; min-width: 0; gap: 4px; }
.workline-copy b { overflow: hidden; color: #26312c; font-size: 12px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.workline-copy small { overflow: hidden; color: #829087; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.workline-step strong { color: #1f3429; font-family: var(--mono); font-size: 22px; font-weight: 650; letter-spacing: -.07em; }
.workline-empty { display: flex; min-height: 100px; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border: 1px dashed #bfd4c4; border-radius: 13px; background: rgba(255,255,255,.62); }.workline-empty > div { display: grid; gap: 5px; }.workline-empty b { color: #2b3b32; font-size: 13px; }.workline-empty span { color: #718078; font-size: 10.5px; line-height: 1.6; }

.cockpit-outcome-grid { grid-template-columns: minmax(0,1.2fr) minmax(340px,.8fr); gap: 20px; margin-top: 20px; }
.cockpit-outcome-panel,.cockpit-monthly-panel { min-height: 210px; }
.cockpit-outcome-panel { display: grid; grid-template-rows: auto 1fr auto auto; overflow: hidden; }
.cockpit-outcome-panel .panel-head { padding-bottom: 4px; }
.outcome-number { padding: 9px 25px 0; }
.outcome-number b { font-size: 46px; }
.outcome-track { height: 8px; margin: 20px 25px 0; background: #e8efea; }
.outcome-track i { background: linear-gradient(90deg,#2f6750,#5c9171); }
.outcome-meta { padding: 10px 25px 23px; }
.cockpit-monthly-panel { padding: 27px; border-color: #d9e6dd; background: linear-gradient(145deg,#ffffff,#f0f7f2); }
.cockpit-monthly-panel h2 { font-size: 20px; line-height: 1.3; }
.cockpit-monthly-panel .button { min-height: 37px; margin-top: 23px; }

.cockpit-main-grid,.cockpit-secondary-grid { grid-template-columns: minmax(0,1.28fr) minmax(340px,.72fr); gap: 20px; margin-top: 20px; }
.cockpit-trend-panel,.cockpit-risk-panel,.cockpit-organization-panel { overflow: hidden; }
.cockpit-legend { gap: 14px 18px; padding: 16px 25px 8px; font-size: 10px; }
.cockpit-legend i { width: 16px; height: 3px; }
.cockpit-line-chart { min-height: 236px; padding: 6px 25px 20px; }
.cockpit-line-chart svg { display: block; width: 100%; height: 214px; overflow: visible; }
.cockpit-line-chart .chart-axis { stroke: #dfe8e1; stroke-width: 1; }
.cockpit-line-chart .chart-line { fill: none; stroke: #397256; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.cockpit-line-chart .chart-line.reviewed { stroke: #668a9a; stroke-dasharray: 6 5; }
.cockpit-line-chart .chart-line.risk { stroke: #b46e56; stroke-width: 2.25; stroke-dasharray: 3 5; }
.cockpit-line-chart text { fill: #8a9790; font-family: var(--mono); font-size: 9px; }
.cockpit-empty-chart { display: grid; min-height: 190px; place-content: center; gap: 7px; padding: 30px; color: #7d8c83; text-align: center; }
.cockpit-empty-chart b { color: #334138; font-size: 12px; }
.cockpit-empty-chart span { max-width: 330px; font-size: 10.5px; line-height: 1.7; }

.cockpit-risk-list { padding: 9px 25px 18px; }
.cockpit-risk-row { grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 15px 0; }
.cockpit-risk-row > button:first-child { grid-template-columns: 38px minmax(0,1fr) auto; gap: 11px; border-radius: 9px; }
.cockpit-risk-row > button:first-child:hover { background: #f7faf7; }
.cockpit-risk-score { width: 34px; height: 34px; border-radius: 9px; }
.cockpit-risk-row b { font-size: 11.5px; }
.cockpit-risk-row small { font-size: 10px; }
.cockpit-risk-row .table-button { padding: 7px 9px; border: 1px solid #d8e4db; border-radius: 8px; color: #35674a; font-size: 10px; font-weight: 650; }
.cockpit-risk-row .table-button:hover { border-color: #aac5b2; background: #f0f7f2; }

.organization-level-tabs { gap: 7px; padding: 17px 25px 7px; }
.organization-level-tabs .filter { border-color: #dce6df; border-radius: 8px; padding: 6px 10px; background: #f8faf8; color: #607068; font-size: 10px; }
.organization-level-tabs .filter.active { border-color: #b6d1bd; background: #e9f3eb; color: #2f6649; }
.organization-rank-list { display: grid; gap: 0; padding: 2px 25px 20px; }
.organization-rank-row { display: grid; grid-template-columns: 30px minmax(150px,.9fr) minmax(120px,1.1fr) auto; width: 100%; align-items: center; gap: 12px; padding: 14px 0; border: 0; border-bottom: 1px solid #edf2ee; background: transparent; color: #27332c; text-align: left; }
.organization-rank-row:last-child { border-bottom: 0; }
.organization-rank-row:hover .organization-rank-copy b { color: #306a4c; }
.organization-rank-index { color: #91a095; font-family: var(--mono); font-size: 10px; }
.organization-rank-copy { display: grid; min-width: 0; gap: 4px; }
.organization-rank-copy b,.organization-rank-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.organization-rank-copy b { font-size: 11.5px; font-weight: 670; }
.organization-rank-copy small { color: #7c8a82; font-size: 9.5px; }
.organization-rank-meter { position: relative; display: grid; gap: 5px; }
.organization-rank-meter i,.organization-rank-meter em { display: block; height: 5px; border-radius: 999px; background: #387257; font-style: normal; }
.organization-rank-meter i { max-width: 100%; }
.organization-rank-meter em { background: #b9d2c0; }
.organization-rank-value { display: grid; justify-items: end; gap: 2px; color: #2c6549; font-family: var(--mono); font-size: 11px; }
.organization-rank-value.empty { color: #98a49d; }
.organization-rank-value small { color: #a37644; font-family: var(--font); font-size: 9px; }
.cockpit-summary-panel { display: flex; min-height: 100%; flex-direction: column; padding: 28px; border-color: #d8e6dc; background: linear-gradient(145deg,#f7fbf8,#edf5ef); }
.cockpit-summary-panel h2 { font-size: 22px; line-height: 1.2; }
.cockpit-summary-panel > p:not(.eyebrow) { max-width: 350px; font-size: 11.5px; }
.cockpit-summary-actions { margin-top: auto; padding-top: 24px; }

.cockpit-setup-panel { margin-top: 20px; border-radius: 16px; }
.setup-checklist { margin: 18px 25px 0; border-color: #dce7df; border-radius: 12px; }
.setup-checklist button { min-height: 84px; padding: 17px; border-color: #dce7df; }
.setup-checklist button:hover { background: #f4f9f5; }
.setup-checklist button b { width: 27px; height: 27px; border-radius: 8px; }
.setup-data-note { margin: 13px 25px 23px; }

@media (max-width: 1180px) {
  .topbar,.page { padding-left: 32px; padding-right: 32px; }
  .page-intro { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; }
  .page-intro > div:first-child,.page-intro h1 { max-width: none; }
  .intro-actions { align-self: start; max-width: none; justify-content: flex-start; }
  .cockpit-workline { grid-template-columns: 1fr; gap: 22px; }
  .cockpit-workline h2 { max-width: none; }
  .cockpit-outcome-grid,.cockpit-main-grid,.cockpit-secondary-grid { grid-template-columns: 1fr; }
  .cockpit-summary-panel { min-height: 225px; }
}
@media (max-width: 820px) {
  .topbar { padding-left: 18px; padding-right: 18px; }
  .page { padding: 27px 18px 56px; }
  .page-intro { margin-bottom: 24px; }
  .intro-actions { width: 100%; justify-content: flex-start; }
  .cockpit-kpi-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cockpit-kpi-strip article { min-height: 126px; padding: 19px 18px; }
  .cockpit-kpi-strip article:nth-child(2) { border-right: 0; }
  .cockpit-kpi-strip article:nth-child(n+3) { border-top: 1px solid #dfe7e1; }
  .cockpit-workline { padding: 22px; }
  .workline-flow { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .workline-flow li:not(:last-child)::after { display: none; }
  .workline-step,.workline-flow li:first-child .workline-step { min-height: 72px; border: 1px solid #dce7df; border-radius: 10px; }
  .cockpit-outcome-grid,.cockpit-main-grid,.cockpit-secondary-grid { gap: 16px; margin-top: 16px; }
  .panel-head { padding-left: 20px; padding-right: 20px; }
  .cockpit-line-chart { min-height: 214px; padding-left: 20px; padding-right: 20px; }
  .cockpit-risk-list,.organization-rank-list { padding-left: 20px; padding-right: 20px; }
  .organization-level-tabs { padding-left: 20px; padding-right: 20px; }
  .organization-rank-row { grid-template-columns: 26px minmax(0,1fr) 82px; }
  .organization-rank-meter { display: none; }
  .setup-checklist { grid-template-columns: 1fr 1fr; margin-left: 20px; margin-right: 20px; }
  .setup-checklist button:nth-child(2) { border-right: 0; }
  .setup-checklist button:nth-child(n+3) { border-top: 1px solid #dce7df; }
  .setup-data-note { margin-left: 20px; margin-right: 20px; }
}
@media (max-width: 520px) {
  .page { padding-left: 14px; padding-right: 14px; }
  .page-intro h1 { font-size: 27px; }
  .intro-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .intro-actions .button { min-width: 0; padding-left: 9px; padding-right: 9px; }
  .cockpit-kpi-strip article { min-height: 116px; }
  .cockpit-kpi-strip b { font-size: 28px; }
  .cockpit-workline { padding: 19px; }
  .workline-flow { grid-template-columns: 1fr; }
  .workline-empty { align-items: stretch; flex-direction: column; }.workline-empty .button { width: 100%; }
  .cockpit-outcome-panel,.cockpit-monthly-panel { min-height: 198px; }
  .outcome-number,.outcome-meta { padding-left: 20px; padding-right: 20px; }
  .outcome-track { margin-left: 20px; margin-right: 20px; }
  .organization-rank-row { grid-template-columns: 24px minmax(0,1fr) auto; gap: 8px; }
  .organization-rank-copy small { max-width: 175px; }
  .cockpit-risk-row { align-items: start; grid-template-columns: 1fr; }
  .cockpit-risk-row .table-button { justify-self: start; margin-left: 45px; }
  .setup-checklist { grid-template-columns: 1fr; }
  .setup-checklist button,.setup-checklist button:nth-child(2) { border-right: 0; border-bottom: 1px solid #dce7df; }
  .setup-checklist button:last-child { border-bottom: 0; }
}

/* 领导驾驶舱：用真实工作状态和成果记录替代分数、排名。 */
.cockpit-outcome-panel { display: block; min-height: 220px; }
.outcome-ledger { display: grid; gap: 13px; padding: 20px 25px 23px; }
.outcome-ledger-row { display: grid; grid-template-columns: 106px minmax(0,1fr) 28px; align-items: center; gap: 11px; color: #64736a; font-size: 10.5px; }
.outcome-ledger-row > div { height: 8px; overflow: hidden; border-radius: 999px; background: #edf2ee; }
.outcome-ledger-row i { display: block; min-width: 0; height: 100%; border-radius: inherit; background: #3e7659; }
.outcome-ledger-row i.evidence { background: #6d8d9e; }
.outcome-ledger-row i.supplement { background: #b17b4f; }
.outcome-ledger-row b { color: #28362e; font-family: var(--mono); font-size: 13px; text-align: right; }
.outcome-ledger p { margin: 2px 0 0; color: #829087; font-size: 10px; line-height: 1.6; }

.cockpit-action-list { display: grid; padding: 9px 25px 16px; }
.cockpit-action-row { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 13px 0; border-bottom: 1px solid #edf2ee; }
.cockpit-action-row:last-child { border-bottom: 0; }
.cockpit-action-row > div { display: grid; min-width: 0; gap: 4px; }
.cockpit-action-row b,.cockpit-action-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cockpit-action-row b { color: #29352e; font-size: 11.5px; }
.cockpit-action-row small { color: #809086; font-size: 10px; }
.cockpit-action-kind { display: inline-grid; min-height: 24px; place-items: center; border-radius: 7px; background: #edf3ee; color: #3c7055; font-size: 9.5px; font-weight: 700; }
.cockpit-action-kind.coordination { background: #fff1e6; color: #a56234; }
.cockpit-action-kind.follow-up { background: #fff5e8; color: #a67839; }
.cockpit-action-kind.review { background: #ebf1f5; color: #527287; }
.cockpit-action-row .table-button { padding: 7px 9px; border: 1px solid #d8e4db; border-radius: 8px; color: #35674a; font-size: 10px; font-weight: 650; }
.cockpit-action-row .table-button:hover { border-color: #aac5b2; background: #f0f7f2; }

.organization-progress-list { display: grid; padding: 2px 25px 20px; }
.organization-progress-row { display: grid; grid-template-columns: minmax(135px,.9fr) minmax(145px,1.05fr) 82px; align-items: center; gap: 14px; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid #edf2ee; background: transparent; color: #27332c; text-align: left; }
.organization-progress-row:last-of-type { border-bottom: 0; }
.organization-progress-row:hover .organization-progress-copy b { color: #306a4c; }
.organization-progress-copy { display: grid; min-width: 0; gap: 4px; }
.organization-progress-copy b,.organization-progress-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.organization-progress-copy b { font-size: 11.5px; font-weight: 670; }
.organization-progress-copy small { color: #7c8a82; font-size: 9.5px; }
.organization-progress-bars { display: grid; gap: 5px; }
.organization-progress-bars i { display: block; min-width: 2px; height: 6px; border-radius: 999px; background: #3b7658; }
.organization-progress-bars i.active { background: #b7d3c0; }
.organization-progress-value { display: grid; justify-items: end; gap: 1px; font-family: var(--mono); }
.organization-progress-value b { color: #2f6348; font-size: 13px; }
.organization-progress-value small { color: #86948b; font-family: var(--font); font-size: 9px; }
.organization-progress-value em { color: #518065; font-family: var(--font); font-size: 9px; font-style: normal; }
.organization-progress-value em.risk { color: #a96242; }
.organization-progress-legend { display: flex; gap: 14px; padding-top: 10px; color: #819087; font-size: 9.5px; }
.organization-progress-legend span { display: inline-flex; align-items: center; gap: 5px; }
.organization-progress-legend i { width: 14px; height: 4px; border-radius: 99px; background: #3b7658; }
.organization-progress-legend i.active { background: #b7d3c0; }

.cockpit-workload-panel { margin-top: 20px; overflow: hidden; }
.workload-table-wrap { overflow-x: auto; padding: 17px 25px 21px; }
.workload-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.workload-table th { padding: 0 8px 10px; color: #829087; font-size: 9.5px; font-weight: 600; text-align: center; white-space: nowrap; }
.workload-table th:first-child { padding-left: 0; text-align: left; }
.workload-table td { padding: 8px; border-top: 1px solid #eef3ef; color: #344039; font-size: 10.5px; text-align: center; }
.workload-table td:first-child { padding-left: 0; color: #2b382f; font-weight: 650; text-align: left; }
.workload-cell { display: inline-grid; width: 27px; height: 25px; place-items: center; border-radius: 7px; background: #f2f5f2; color: #9aa69f; font-family: var(--mono); font-size: 10px; }
.workload-cell.has-value { background: #e6f1e9; color: #377052; }
.workload-cell.review.has-value { background: #e9f0f4; color: #547487; }
.workload-cell.overdue.has-value { background: #fff0e7; color: #a65b3d; }
.workload-cell.updated.has-value { background: #eef4ef; color: #2f6e4c; }
.workload-table-wrap > p { margin: 12px 0 0; color: #839087; font-size: 9.5px; }

@media (max-width: 820px) {
  .outcome-ledger,.cockpit-action-list,.organization-progress-list,.workload-table-wrap { padding-left: 20px; padding-right: 20px; }
  .organization-progress-row { grid-template-columns: minmax(0,1fr) 72px; }
  .organization-progress-bars { display: none; }
}
@media (max-width: 520px) {
  .outcome-ledger { padding-left: 20px; padding-right: 20px; }
  .outcome-ledger-row { grid-template-columns: 92px minmax(0,1fr) 24px; gap: 8px; }
  .cockpit-action-row { grid-template-columns: 65px minmax(0,1fr); align-items: start; }
  .cockpit-action-row .table-button { grid-column: 2; justify-self: start; }
  .organization-progress-row { grid-template-columns: minmax(0,1fr) 70px; gap: 9px; }
}

/* 页面收敛：状态横向成组，详情弹窗只保留一个信息层级。 */
.organization-progress-row { grid-template-columns: minmax(150px, .95fr) minmax(160px, 1.2fr) minmax(142px, .58fr); gap: 16px; }
.organization-progress-value { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 7px; }
.organization-progress-value > span { display: grid; min-width: 0; gap: 2px; padding: 6px 7px; border: 1px solid #e1ebe3; border-radius: 7px; background: #fafcfb; text-align: center; }
.organization-progress-value > span.risk { border-color: #edd9cf; background: #fffaf7; }
.organization-progress-value b { color: #2f6348; font-size: 12px; line-height: 1.1; }
.organization-progress-value small { color: #78877e; font-family: var(--font); font-size: 9px; line-height: 1.25; }
.organization-progress-value > span.risk b, .organization-progress-value > span.risk small { color: #a96242; }

.organization-dashboard-detail { display: grid; gap: 17px; }
.organization-detail-lead { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.review-dialog .organization-dashboard-detail .organization-trend { margin: 0; padding: 15px 16px; }
.review-dialog .organization-detail-table { padding: 0; }
.review-dialog { width: min(920px, calc(100vw - 48px)); }
.review-dialog .dialog-head { padding: 30px 32px 0; }
.review-dialog .dialog-head h2 { font-size: 23px; }
.review-dialog .review-content { padding: 22px 32px 0; }

@media (max-width: 820px) {
  .organization-progress-row { grid-template-columns: minmax(0, 1fr) minmax(138px, .48fr); gap: 13px; }
  .organization-progress-value { gap: 6px; }
  .review-dialog .dialog-head, .review-dialog .review-content { padding-left: 24px; padding-right: 24px; }
}

@media (max-width: 520px) {
  .organization-progress-row { grid-template-columns: minmax(0, 1fr) 134px; gap: 10px; }
  .organization-progress-value > span { padding: 5px 4px; }
  .review-dialog { width: calc(100vw - 20px); }
.review-dialog .dialog-head { padding: 23px 18px 0; }
  .review-dialog .review-content { padding: 18px 18px 0; }
}

/* 任务管理与教学周：将浏览、管理和设置收敛为清晰的日常操作。 */
.week-navigation { display: inline-flex; align-items: center; gap: 4px; }
.week-nav-button { display: inline-grid; width: 27px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.7); color: #68756d; transition: border-color .18s ease, background .18s ease, color .18s ease; }
.week-nav-button .icon { width: 14px; height: 14px; }
.week-nav-button:first-child .icon { transform: rotate(90deg); }
.week-nav-next .icon { transform: rotate(-90deg); }
.week-nav-button:hover:not(:disabled) { border-color: #b9cec0; background: #fff; color: var(--accent-deep); }
.week-nav-button:disabled { cursor: not-allowed; opacity: .4; }
.week-picker.is-history { border-color: #bdd4c4; background: #f4faf5; color: var(--accent-deep); }
.week-picker.is-history::after { content: '历史'; padding-left: 3px; color: var(--accent); font-size: 9px; font-weight: 700; }

.task-summary-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin-top: 22px; overflow: hidden; border: 1px solid #dfe8e1; border-radius: 12px; background: #dfe8e1; }
.task-summary-item { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 70px; padding: 17px 18px; border: 0; background: #fff; color: var(--muted); text-align: left; transition: background .18s ease, color .18s ease; }
.task-summary-item:hover,.task-summary-item.active { background: #f4faf5; color: var(--accent-deep); }
.task-summary-item span { font-size: 11px; font-weight: 650; }.task-summary-item b { font-family: var(--mono); font-size: 22px; letter-spacing: -.07em; }
.task-create-section { margin-top: 18px; border: 1px solid #dfe8e1; border-radius: 12px; background: #fff; overflow: hidden; }
.task-create-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 22px; cursor: pointer; color: var(--ink); list-style: none; }.task-create-details > summary::-webkit-details-marker { display: none; }
.task-create-details > summary > span:first-child { display: grid; gap: 4px; }.task-create-details > summary b { font-size: 14px; }.task-create-details > summary small { color: var(--muted); font-size: 10.5px; }.task-create-details > summary > span:last-child { color: var(--accent); font-size: 10px; font-weight: 700; }
.task-create-details:not([open]) > summary > span:last-child { font-size: 0; }.task-create-details:not([open]) > summary > span:last-child::after { content: '展开'; font-size: 10px; }
.task-create-details[open] > summary { border-bottom: 1px solid #e7eee9; }.task-create-details .task-dispatch-form { padding: 21px 22px 23px; }
.task-manager-panel { margin-top: 18px; overflow: hidden; }.task-filter-row { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 22px 16px; }.task-filter-row .filter { display: inline-flex; align-items: center; gap: 7px; }.task-filter-row .filter b { font-family: var(--mono); font-size: 10px; }
.task-manager-panel .table-wrap { padding-top: 1px; }.task-manager-panel .table-button { white-space: nowrap; }.task-manager-panel .table-actions { flex-wrap: wrap; justify-content: flex-start; gap: 7px 12px; }

/* 协作分组只表达工作关系，不覆盖原有权限体系。 */
.collab-page { display: grid; gap: 18px; padding-bottom: 24px; }
.collab-intro { padding: 24px 26px; background: linear-gradient(120deg,#f5faf6,#fff 72%); }
.collab-intro h1 { margin: 5px 0 9px; font-size: 23px; letter-spacing: -.04em; }
.collab-intro > p:last-child { max-width: 780px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.collab-units { display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); gap: 12px; }
.collab-unit { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.collab-unit-head { padding: 16px 18px 12px; border-bottom: 1px solid var(--line); }
.collab-unit-head h2 { margin: 0; font-size: 15px; }
.collab-unit-section { margin: 0 0 5px; color: var(--accent-deep); font-size: 11px; }
.collab-people { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 18px 18px; }
.collab-person { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 7px 9px; border: 1px solid #e4ebe6; border-radius: 8px; background: #f9fcfa; font-size: 11px; }
.collab-person b { color: var(--ink); }.collab-self { color: var(--accent-deep); }
.collab-person-label { color: var(--muted); font-size: 10px; }
.collab-person-action { border: 0; padding: 0; background: transparent; color: var(--accent-deep); font: inherit; cursor: pointer; }.collab-person-action:hover { text-decoration: underline; }.collab-person-action:focus-visible { outline: 2px solid var(--accent-deep); outline-offset: 3px; }
.collab-no-groups { padding: 20px 24px; }.collab-no-groups h2 { margin: 0 0 6px; font-size: 15px; }.collab-no-groups p { margin: 0; color: var(--muted); font-size: 12px; }
.collab-task-panel { padding: 22px 24px; }.collab-task-heading h2 { margin: 4px 0 6px; font-size: 17px; }.collab-task-heading p:last-child { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.collab-create { display: grid; grid-template-columns: minmax(180px,1fr) minmax(170px,220px) auto; align-items: end; gap: 11px; margin: 19px 0; padding: 17px; border: 1px solid #dce9df; border-radius: 10px; background: #f9fcfa; }
.collab-create label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 650; }.collab-create-note { grid-column: 1 / -1; }.collab-create input,.collab-create select,.collab-create textarea,.collab-task-actions input,.collab-task-actions select { min-width: 0; width: 100%; border: 1px solid var(--line-dark); border-radius: 7px; padding: 9px 10px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.collab-create button,.collab-task-actions button { border: 0; border-radius: 7px; padding: 10px 15px; background: var(--accent-deep); color: #fff; font-size: 11px; font-weight: 700; cursor: pointer; }.collab-create button:disabled,.collab-task-actions button:disabled { opacity: .55; cursor: wait; }.collab-task-actions button.secondary { border: 1px solid #bed0c4; background: #fff; color: var(--accent-deep); }
.collab-task-list { display: grid; gap: 10px; }.collab-task { border: 1px solid var(--line); border-radius: 9px; padding: 15px 17px; }.collab-task-top { display: flex; align-items: start; justify-content: space-between; gap: 10px; }.collab-task-top b { font-size: 12px; }.collab-task-top p { margin: 5px 0; color: var(--muted); font-size: 11px; white-space: pre-wrap; }.collab-task-status { flex: 0 0 auto; border-radius: 20px; padding: 4px 7px; background: #fff0dc; color: #8a5b1b; font-size: 10px; }.collab-task-status.done { background: #e5f2e8; color: #306b46; }.collab-task-meta { margin: 5px 0 0; color: var(--faint); font-size: 10px; }
.collab-task-actions { display: grid; grid-template-columns: minmax(150px,190px) minmax(140px,1fr) auto auto; gap: 8px; margin-top: 13px; }.collab-history { margin-top: 12px; color: var(--muted); font-size: 10px; }.collab-history summary { cursor: pointer; }.collab-history ol { margin: 9px 0 0; padding-left: 21px; }.collab-history li { margin: 6px 0; line-height: 1.5; }.collab-history small { margin-left: 8px; color: var(--faint); }.collab-history li p { margin: 2px 0 0; white-space: pre-wrap; }.collab-empty { padding: 14px; color: var(--faint); font-size: 11px; }
.collab-message-form { grid-template-columns: minmax(180px,260px) 1fr; }.collab-message-form button { justify-self: start; }.collab-message-list { display: grid; gap: 8px; }.collab-message { padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.collab-message p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; margin: 0 0 7px; color: var(--muted); font-size: 11px; }.collab-message p b { color: var(--ink); }.collab-message small { margin-left: auto; color: var(--faint); }.collab-message > div { color: var(--ink); font-size: 12px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.collab-create-files { grid-column: 1 / -1; }.collab-create-files small { color: var(--faint); font-weight: 400; }
.collab-task-files { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.collab-conversation { margin-top: 13px; border-top: 1px solid var(--line); padding-top: 12px; color: var(--muted); font-size: 11px; }
.collab-conversation summary { color: var(--accent-deep); cursor: pointer; font-weight: 700; }
.collab-conversation-list { margin: 10px 0; padding-left: 22px; }
.collab-conversation-list li { margin: 7px 0; line-height: 1.6; }
.collab-conversation-list p { margin: 3px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.collab-conversation-list small { margin-left: 8px; color: var(--faint); }
.collab-comment-form { display: grid; gap: 9px; margin-top: 12px; }
.collab-comment-form label { display: grid; gap: 5px; }
.collab-comment-form textarea,.collab-comment-form input { width: 100%; border: 1px solid var(--line-dark); border-radius: 7px; padding: 9px; font: inherit; }
.collab-comment-form button { justify-self: start; border: 0; border-radius: 7px; padding: 9px 14px; background: var(--accent-deep); color: white; cursor: pointer; }
.collab-comment-form button:disabled { opacity: .55; }
.task-delegations { display: grid; gap: 5px; margin: 10px 0; padding: 10px; border-radius: 8px; background: #f4f9f5; color: var(--muted); font-size: 11px; }
.task-delegations b { color: var(--ink); }
@media (max-width: 720px) { .collab-create { grid-template-columns: 1fr; }.collab-create-note { grid-column: auto; }.collab-task-actions { grid-template-columns: 1fr 1fr; }.collab-task-actions input { grid-column: 1 / -1; } }

.academic-term-compact { margin-top: 18px; overflow: hidden; }.academic-term-brief { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 11px; padding: 0 22px 18px; color: var(--muted); font-size: 10.5px; }.academic-term-brief i { width: 3px; height: 3px; border-radius: 50%; background: #a9b7ae; }
.academic-term-details { border-top: 1px solid #e7eee9; }.academic-term-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 22px; cursor: pointer; list-style: none; }.academic-term-details > summary::-webkit-details-marker { display: none; }.academic-term-details > summary span:first-child { display: grid; gap: 4px; }.academic-term-details > summary b { color: var(--ink); font-size: 12px; }.academic-term-details > summary small { color: var(--muted); font-size: 10px; }.academic-term-details > summary span:last-child { color: var(--accent); font-size: 10px; font-weight: 700; }.academic-term-details[open] > summary { border-bottom: 1px solid #e7eee9; }.academic-term-details[open] > summary span:last-child { font-size: 0; }.academic-term-details[open] > summary span:last-child::after { content: '收起'; font-size: 10px; }.academic-term-details .academic-term-form { padding: 20px 22px 22px; }

.person-picker-grid { grid-template-columns: minmax(260px, 430px); padding: 0 22px 22px; }.person-picker-grid .form-field.wide { grid-column: auto; }.person-picker-grid select { background: #fbfdfb; }

@media (max-width: 820px) {
  .task-summary-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }.task-summary-item { min-height: 60px; padding: 14px; }.task-create-details > summary,.task-create-details .task-dispatch-form,.task-filter-row,.academic-term-brief,.academic-term-details > summary,.academic-term-details .academic-term-form,.person-picker-grid { padding-left: 18px; padding-right: 18px; }.person-picker-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .week-nav-button { display: none; }.week-picker.is-history::after { display: none; }.task-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }.task-summary-item:last-child { grid-column: 1 / -1; }.task-filter-row { gap: 6px; }.task-manager-panel .table-actions { gap: 10px; }
}

/* Account recovery follows the existing small, focused dialog language. */
.account-security-dialog { width: min(500px, calc(100vw - 32px)); }
.account-security-form { display: grid; gap: 16px; padding: 20px 25px 0; }
.account-security-form[hidden] { display: none; }
.account-security-form .form-field input { height: 44px; font-size: 13px; }
.account-security-form .form-field .help { margin: 1px 0 0; line-height: 1.55; }
.account-security-note { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.account-security-success { margin: 0; padding: 11px 12px; border: 1px solid #cbdccf; border-radius: 8px; background: var(--accent-pale); color: var(--accent-deep); font-size: 12px; line-height: 1.6; }
.account-security-form .group-form-error { margin: 0; font-size: 12px; }
.account-security-form .dialog-actions { margin: 4px -25px 0; padding: 17px 25px 20px; }
@media (max-width: 520px) { .account-security-form { padding: 18px 18px 0; }.account-security-form .dialog-actions { margin-left: -18px; margin-right: -18px; padding: 16px 18px 20px; }.account-security-form .dialog-actions .button { flex: 1 1 auto; } }
