:root {
  --ink:#152b2b;
  --muted:#71807d;
  --line:#e7ece9;
  --paper:#f6f7f3;
  --white:#fff;
  --green:#164c45;
  --mint:#d9eee7;
  --coral:#f7a58e;
  --amber:#f4cc7b;
  --shadow:0 12px 36px rgba(27,62,56,.08)}
* {
  box-sizing:border-box}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
.app-shell {
  min-height:100vh}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:238px;
  background:#133f3a;
  color:#dce9e5;
  padding:28px 18px 20px;
  display:flex;
  flex-direction:column;
  z-index:20}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 8px 28px}
.brand-mark {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  background:var(--coral);
  color:#183d38;
  font-weight:800}
.brand strong {
  display:block;
  font-size:15px;
  color:#fff}
.brand small {
  display:block;
  font-size:9px;
  letter-spacing:2px;
  margin-top:4px;
  opacity:.55}
.nav-item {
  width:100%;
  border:0;
  background:transparent;
  color:#c6d8d3;
  padding:12px 13px;
  border-radius:10px;
  text-align:left;
  font-size:14px;
  margin:3px 0;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px}
.nav-item>span {
  width:20px;
  text-align:center;
  font-weight:800}
.nav-item:hover,.nav-item.active {
  background:rgba(255,255,255,.1);
  color:#fff}
.nav-item.active {
  box-shadow:inset 3px 0 var(--coral)}
.nav-item em {
  margin-left:auto;
  background:#f1836c;
  color:#fff;
  border-radius:20px;
  padding:1px 7px;
  font-style:normal;
  font-size:11px}
.nav-label {
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  opacity:.45;
  margin:22px 13px 8px}
.nav-item.muted {
  opacity:.62}
.sidebar-foot {
  margin-top:auto;
  border-top:1px solid rgba(255,255,255,.12);
  padding:18px 7px 0;
  display:flex;
  align-items:center;
  gap:10px}
.sidebar-foot .avatar {
  background:#e9b997;
  color:#173c37}
.sidebar-foot strong,.sidebar-foot small {
  display:block}
.sidebar-foot small {
  font-size:11px;
  opacity:.6;
  margin-top:2px}
.sidebar-foot button {
  margin-left:auto;
  border:0;
  background:none;
  color:#fff}
.main {
  margin-left:238px;
  min-height:100vh}
.topbar {
  height:80px;
  padding:0 36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  background:rgba(246,247,243,.92);
  position:sticky;
  top:0;
  z-index:10;
  backdrop-filter:blur(12px)}
.crumb {
  font-size:12px;
  color:#899692}
.crumb span {
  color:#314b47}
.today {
  font-size:13px;
  font-weight:650;
  margin-top:6px}
.top-actions {
  display:flex;
  align-items:center;
  gap:10px}
.icon-btn,.mobile-menu {
  width:38px;
  height:38px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:10px}
.notify {
  position:relative}
.notify:after {
  content:"";
  position:absolute;
  width:6px;
  height:6px;
  background:#ee765f;
  border-radius:50%;
  right:8px;
  top:7px}
.primary,.secondary {
  border:0;
  border-radius:10px;
  padding:11px 17px;
  font-weight:700;
  cursor:pointer}
.primary {
  background:var(--green);
  color:#fff;
  box-shadow:0 6px 16px rgba(22,76,69,.18)}
.primary:hover {
  background:#0f3e38}
.primary.small {
  padding:10px 15px}
.secondary {
  background:white;
  border:1px solid var(--line);
  color:var(--ink)}
.mobile-menu {
  display:none}
.page {
  display:none;
  padding:34px 36px 60px;
  max-width:1520px;
  margin:auto}
.page.active {
  display:block}
.hero {
  background:#e7efea;
  border-radius:24px;
  padding:38px 42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  overflow:hidden;
  position:relative}
.hero:after {
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  border-radius:50%;
  background:rgba(247,165,142,.2);
  right:120px;
  top:-100px}
.eyebrow {
  font-size:10px;
  letter-spacing:2px;
  font-weight:800;
  color:#d66e58}
.hero h1,.page-heading h1 {
  font-size:32px;
  margin:8px 0 10px;
  letter-spacing:-.5px}
.hero p,.page-heading p {
  margin:0;
  color:#657672}
.hero b {
  color:#c95e4a}
.hero-ring {
  width:118px;
  height:118px;
  border-radius:50%;
  background:conic-gradient(var(--green) 78%,rgba(255,255,255,.55) 0);
  display:grid;
  place-items:center;
  z-index:1}
.hero-ring:before {
  content:"";
  position:absolute;
  width:92px;
  height:92px;
  background:#e7efea;
  border-radius:50%}
.hero-ring div {
  z-index:1;
  text-align:center}
.hero-ring strong,.hero-ring span {
  display:block}
.hero-ring strong {
  font-size:25px}
.hero-ring span {
  font-size:10px;
  color:var(--muted);
  margin-top:3px}
.section-title,.panel-head,.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between}
.section-title {
  margin:30px 0 14px}
.section-title h2,.panel h2 {
  font-size:17px;
  margin:0}
.section-title p,.panel-head p {
  font-size:12px;
  color:var(--muted);
  margin:5px 0 0}
.text-btn {
  border:0;
  background:none;
  color:#426862;
  cursor:pointer}
.task-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px}
.task-card {
  border:0;
  border-radius:16px;
  padding:20px;
  display:flex;
  align-items:center;
  gap:15px;
  min-height:112px}
.task-card.coral {
  background:#fbe6df}
.task-card.amber {
  background:#f8edcf}
.task-card.mint {
  background:#deeee8}
.task-icon {
  width:42px;
  height:42px;
  background:rgba(255,255,255,.75);
  border-radius:12px;
  display:grid;
  place-items:center;
  font-weight:800}
.task-card span {
  font-size:11px;
  color:#71807d}
.task-card h3 {
  font-size:14px;
  margin:5px 0}
.task-card p {
  font-size:11px;
  margin:0;
  color:#7b8784}
.arrow {
  margin-left:auto;
  border:0;
  background:#fff;
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:17px;
  cursor:pointer}
.dashboard-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:16px;
  margin-top:16px}
.panel {
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:23px;
  box-shadow:0 3px 14px rgba(40,67,62,.025)}
.filter {
  border:1px solid var(--line);
  background:#fafbf9;
  border-radius:8px;
  padding:8px 11px;
  color:#516560;
  margin-left:6px}
.metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:22px}
.metrics>div {
  border-right:1px solid var(--line);
  padding-right:12px}
.metrics>div:last-child {
  border:0}
.metrics span,.metrics strong,.metrics em {
  display:block}
.metrics span {
  font-size:11px;
  color:var(--muted)}
.metrics strong {
  font-size:26px;
  margin:8px 0}
.metrics strong small {
  font-size:13px;
  margin-left:2px}
.metrics em {
  font-size:10px;
  color:#899591;
  font-style:normal}
.metrics .up {
  color:#31846c}
.metrics .warn {
  color:#e27057}
.progress-list {
  margin-top:24px;
  border-top:1px solid var(--line);
  padding-top:18px}
.progress-list>div {
  display:grid;
  grid-template-columns:70px 1fr 42px;
  align-items:center;
  gap:10px;
  margin:12px 0;
  font-size:11px}
.track {
  height:7px;
  background:#edf1ee;
  border-radius:10px;
  overflow:hidden}
.track i {
  display:block;
  height:100%;
  background:#4e8b7e;
  border-radius:10px}
.progress-list b {
  text-align:right}
.issue-item {
  display:grid;
  grid-template-columns:30px 1fr auto;
  align-items:center;
  gap:12px;
  border-bottom:1px solid var(--line);
  padding:17px 0}
.issue-item:last-child {
  border:0}
.priority {
  font-style:normal;
  font-size:10px;
  padding:4px 7px;
  border-radius:5px;
  white-space:nowrap}
.priority.high {
  background:#fde4de;
  color:#d65d47}
.priority.mid {
  background:#fff0ca;
  color:#a66c00}
.priority.low {
  background:#dceee7;
  color:#28725f}
.issue-item h4 {
  margin:0 0 5px;
  font-size:13px}
.issue-item p {
  margin:0;
  font-size:10px;
  color:var(--muted)}
.issue-item>b {
  font-size:10px;
  color:#54736d;
  background:#edf4f1;
  border-radius:20px;
  padding:5px 8px}
.page-heading {
  margin-bottom:26px}
.page-heading>div:last-child {
  display:flex;
  gap:8px}
.stat-strip,.month-cards {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  margin-bottom:16px}
.stat-strip div,.month-cards div {
  padding:19px 24px;
  border-right:1px solid var(--line)}
.stat-strip div:last-child,.month-cards div:last-child {
  border:0}
.stat-strip span,.stat-strip strong,.month-cards span,.month-cards strong,.month-cards small {
  display:block}
.stat-strip span,.month-cards span {
  font-size:11px;
  color:var(--muted)}
.stat-strip strong,.month-cards strong {
  font-size:23px;
  margin-top:6px}
.list-panel {
  padding:0}
.list-panel .panel-head {
  padding:22px 24px;
  border-bottom:1px solid var(--line)}
.report-row {
  display:grid;
  grid-template-columns:42px 1fr auto auto;
  align-items:center;
  gap:15px;
  padding:19px 24px;
  border-bottom:1px solid var(--line)}
.report-row:last-child {
  border:0}
.avatar {
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:750;
  font-size:13px}
.peach {
  background:#fde1d8}
.lavender {
  background:#e6def8}
.blue {
  background:#dcebef}
.gray {
  background:#e9ecea}
.report-main>div {
  display:flex;
  align-items:center;
  gap:9px}
.report-main h3 {
  font-size:14px;
  margin:0}
.report-main span {
  font-size:11px;
  color:var(--muted)}
.report-main p {
  font-size:12px;
  margin:7px 0;
  color:#374f4b}
.report-main small {
  font-size:10px;
  color:#8b9794}
.tag {
  font-size:9px!important;
  font-style:normal;
  border-radius:5px;
  padding:3px 7px}
.green {
  background:#dff1ea;
  color:#217360}
.amber-tag {
  background:#fff0cf;
  color:#a56f0b}
.gray-tag {
  background:#edf0ee;
  color:#73817d}
.blue-tag {
  background:#dfeef5;
  color:#397184}
.report-row time {
  font-size:11px;
  color:#899591}
.report-row>button,.week-row>button {
  border:0;
  background:none;
  color:#315f57;
  cursor:pointer}
.remind {
  border:1px solid #efd0c7!important;
  border-radius:7px!important;
  padding:6px 11px;
  background:#fff8f6!important}
.muted-copy {
  color:#9ca6a3!important}
.week-focus,.month-hero {
  background:var(--green);
  color:#fff;
  border-radius:18px;
  padding:28px 32px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px}
.week-focus span,.month-hero span {
  font-size:10px;
  letter-spacing:1px;
  color:#a9cdc4}
.week-focus h2 {
  font-size:18px;
  margin:9px 0 0;
  font-weight:600}
.week-focus button {
  background:rgba(255,255,255,.12);
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  padding:9px 13px;
  border-radius:8px}
.weekly-grid {
  grid-template-columns:1.6fr 1fr}
.week-row {
  display:grid;
  grid-template-columns:42px 1fr auto auto;
  gap:12px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line)}
.week-row:last-child {
  border:0}
.week-row h3 {
  font-size:13px;
  margin:0}
.week-row p {
  font-size:11px;
  color:#5d6f6b;
  margin:5px 0}
.week-row div>span {
  font-size:10px;
  color:#8c9895}
.insight {
  display:flex;
  gap:13px;
  padding:17px 0;
  border-bottom:1px solid var(--line)}
.insight:last-child {
  border:0}
.insight>span {
  color:#e27762;
  font-size:11px;
  font-weight:800}
.insight h4 {
  font-size:13px;
  margin:0 0 5px}
.insight p {
  font-size:11px;
  color:var(--muted);
  line-height:1.6;
  margin:0}
.month-hero h2 {
  font-size:22px;
  margin:8px 0}
.month-hero p {
  font-size:12px;
  max-width:720px;
  color:#c5d9d4;
  line-height:1.7}
.month-score {
  width:100px;
  text-align:center;
  border-left:1px solid rgba(255,255,255,.16)}
.month-score strong,.month-score span {
  display:block}
.month-score strong {
  font-size:36px;
  color:#fff}
.month-cards small {
  font-size:10px;
  color:#588278;
  margin-top:7px}
.project-progress {
  display:grid;
  grid-template-columns:40px 1fr auto auto;
  align-items:center;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid var(--line)}
.project-progress:last-child {
  border:0}
.project-dot {
  width:38px;
  height:38px;
  border-radius:11px;
  display:grid;
  place-items:center;
  font-weight:800}
.coral-bg {
  background:#fde2d9}
.amber-bg {
  background:#ffefc9}
.mint-bg {
  background:#dcede6}
.project-progress h3 {
  font-size:13px;
  margin:0}
.project-progress p {
  font-size:10px;
  color:var(--muted);
  margin:5px 0 8px}
.project-progress b {
  font-size:12px}
.asset-summary {
  display:flex;
  gap:13px;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid var(--line)}
.asset-summary:last-child {
  border:0}
.asset-summary>span {
  width:36px;
  height:36px;
  border-radius:10px;
  background:#e9f1ed;
  display:grid;
  place-items:center;
  font-weight:800}
.asset-summary h3 {
  font-size:13px;
  margin:0 0 4px}
.asset-summary p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.issue-toolbar {
  display:flex;
  gap:8px;
  margin-bottom:16px}
.search {
  flex:1;
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px;
  padding:9px 12px;
  color:#7a8985}
.search input {
  border:0;
  outline:0;
  width:90%;
  background:transparent;
  margin-left:8px}
.kanban {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:13px;
  align-items:start}
.kanban-col {
  background:#edf1ee;
  border-radius:15px;
  padding:12px;
  min-height:500px}
.kanban-head {
  display:flex;
  justify-content:space-between;
  padding:5px 5px 13px;
  font-size:12px;
  font-weight:700}
.kanban-head b {
  background:#fff;
  border-radius:20px;
  padding:2px 7px}
.kanban article {
  background:#fff;
  border-radius:12px;
  padding:15px;
  margin-bottom:10px;
  box-shadow:0 3px 10px rgba(34,60,55,.04)}
.kanban article h3 {
  font-size:13px;
  line-height:1.5;
  margin:10px 0 6px}
.kanban article p {
  font-size:10px;
  color:var(--muted);
  line-height:1.55}
.labels {
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin:12px 0}
.labels span {
  font-size:9px;
  padding:4px 7px;
  border-radius:5px;
  background:#eff3f1;
  color:#58716b}
.kanban footer {
  border-top:1px solid var(--line);
  padding-top:10px;
  display:flex;
  justify-content:space-between;
  align-items:center}
.mini-avatar {
  width:24px;
  height:24px;
  background:#e2eee9;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:9px;
  font-weight:700}
.kanban time {
  font-size:9px;
  color:#8d9996}
.done {
  opacity:.72}
.placeholder-page {
  min-height:75vh;
  place-items:center;
  text-align:center}
.placeholder-page.active {
  display:grid}
.placeholder-page>div>span {
  font-size:45px;
  color:#6b9188}
.placeholder-page p {
  color:var(--muted);
  margin-bottom:25px}
.modal {
  display:none;
  position:fixed;
  inset:0;
  z-index:100}
.modal.open {
  display:block}
.modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(10,34,31,.5);
  backdrop-filter:blur(3px)}
.modal-card {
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:min(680px,100%);
  background:#fff;
  padding:30px 34px;
  overflow:auto;
  box-shadow:-20px 0 50px rgba(12,42,37,.15)}
.modal-card header {
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:20px}
.modal-card h2 {
  font-size:24px;
  margin:6px 0}
.modal-card header p {
  font-size:12px;
  color:var(--muted);
  margin:0}
.close {
  border:0;
  background:#f1f3f1;
  border-radius:50%;
  width:34px;
  height:34px;
  font-size:22px}
.form-section {
  padding:22px 0;
  border-bottom:1px solid var(--line)}
.form-section h3 {
  font-size:14px;
  margin:0 0 15px}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px}
.field {
  display:flex;
  flex-direction:column;
  gap:6px}
.field.full {
  grid-column:1/-1}
.field label {
  font-size:11px;
  font-weight:650}
.field input,.field textarea,.field select {
  border:1px solid #dfe5e1;
  border-radius:9px;
  padding:11px 12px;
  font:inherit;
  font-size:12px;
  outline:none;
  background:#fbfcfb}
.field textarea {
  min-height:85px;
  resize:vertical;
  line-height:1.6}
.field input:focus,.field textarea:focus,.field select:focus {
  border-color:#77a399;
  box-shadow:0 0 0 3px #e6f0ed}
.form-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:22px 0}
.toast {
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translate(-50%,20px);
  background:#163f3a;
  color:#fff;
  padding:11px 18px;
  border-radius:10px;
  z-index:120;
  opacity:0;
  transition:.25s;
  font-size:12px}
.toast.show {
  opacity:1;
  transform:translate(-50%,0)}

.personal-banner {
  margin-top:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center}
.personal-copy h2 {
  margin:6px 0 8px;
  font-size:18px}
.personal-copy p {
  font-size:12px;
  color:var(--muted);
  margin:0 0 16px}
.personal-copy>div {
  display:flex;
  gap:8px}
.value-stats {
  display:flex;
  border-left:1px solid var(--line);
  padding-left:28px}
.value-stats div {
  padding:0 22px;
  text-align:center}
.value-stats strong,.value-stats span {
  display:block}
.value-stats strong {
  font-size:24px}
.value-stats span {
  font-size:10px;
  color:var(--muted);
  margin-top:4px}
.comment-count {
  font-size:9px;
  font-style:normal;
  color:#52796f;
  background:#edf5f2;
  border-radius:12px;
  padding:3px 7px}
.ai-suggestion {
  display:grid;
  grid-template-columns:45px 1fr auto;
  align-items:center;
  gap:16px;
  background:#eef4f1;
  border:1px solid #dce9e4;
  border-radius:16px;
  padding:20px 22px;
  margin-bottom:16px}
.ai-mark {
  width:42px;
  height:42px;
  border-radius:12px;
  background:var(--green);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:800}
.ai-suggestion span {
  font-size:10px;
  color:#d66e58;
  font-weight:800;
  letter-spacing:1px}
.ai-suggestion h3 {
  font-size:14px;
  margin:5px 0}
.ai-suggestion p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.ai-actions {
  display:flex;
  gap:7px}
.period-switch {
  display:flex;
  gap:4px;
  margin-bottom:16px}
.period-switch button {
  border:1px solid var(--line);
  background:#fff;
  padding:8px 18px;
  color:var(--muted)}
.period-switch button:first-child {
  border-radius:9px 0 0 9px}
.period-switch button:last-child {
  border-radius:0 9px 9px 0}
.period-switch button.active {
  background:var(--green);
  color:#fff}
.impact-hero {
  background:linear-gradient(125deg,#174c45,#2e6d63);
  color:#fff;
  border-radius:18px;
  padding:28px 32px;
  display:flex;
  justify-content:space-between;
  align-items:center}
.impact-hero>div>span {
  font-size:10px;
  color:#aad0c7}
.impact-hero h2 {
  font-size:21px;
  margin:8px 0}
.impact-hero p {
  font-size:12px;
  color:#c8ddd8}
.impact-score {
  border-left:1px solid rgba(255,255,255,.18);
  padding-left:28px;
  text-align:center}
.impact-score strong,.impact-score span {
  display:block}
.impact-score strong {
  font-size:34px}
.impact-score span {
  font-size:10px;
  color:#b9d5ce}
.output-block {
  padding:18px 0;
  border-bottom:1px solid var(--line)}
.output-block:last-child {
  border:0}
.output-block>span {
  font-size:10px;
  color:#d56e59;
  font-weight:700}
.output-block h3 {
  font-size:14px;
  margin:7px 0}
.output-block p {
  font-size:11px;
  color:var(--muted);
  line-height:1.7;
  margin:0}
.mini-panel {
  margin-bottom:16px}
.feedback {
  display:flex;
  gap:10px;
  padding:14px 0;
  border-bottom:1px solid var(--line)}
.feedback:last-child {
  border:0}
.feedback p {
  font-size:11px;
  line-height:1.6;
  margin:0;
  color:#5b6f6a}
.reuse-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:15px}
.reuse-grid button {
  border:1px solid var(--line);
  background:#f8faf8;
  border-radius:9px;
  padding:12px;
  color:#365f57}
.sidebar-foot small {
  white-space:nowrap}
.sidebar-foot>div:nth-child(2) {
  min-width:0}
.sidebar-foot strong {
  font-size:13px}
.sidebar-foot small {
  font-size:9px}

.add-work {
  margin-top:14px;
  border:1px dashed #9abbb3;
  background:#f5faf8;
  color:#35665d;
  border-radius:9px;
  padding:10px 14px;
  width:100%}
.project-rule {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  margin-bottom:16px}
.project-rule>div {
  background:#fff;
  padding:20px 24px}
.project-rule span {
  font-size:10px;
  color:#d36c57;
  font-weight:800}
.project-rule h3 {
  font-size:14px;
  margin:6px 0}
.project-rule p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.project-layout {
  display:grid;
  grid-template-columns:320px 1fr;
  gap:16px}
.project-sidebar {
  padding:16px}
.project-nav {
  width:100%;
  display:grid;
  grid-template-columns:40px 1fr auto;
  align-items:center;
  gap:10px;
  text-align:left;
  border:0;
  background:transparent;
  padding:12px 9px;
  border-radius:11px;
  margin-top:5px}
.project-nav.active {
  background:#eaf2ee}
.project-nav strong,.project-nav small {
  display:block}
.project-nav strong {
  font-size:12px}
.project-nav small {
  font-size:9px;
  color:var(--muted);
  margin-top:4px}
.project-nav em {
  font-size:9px;
  font-style:normal;
  color:#317463;
  background:#dceee7;
  padding:3px 6px;
  border-radius:4px}
.project-other {
  border-top:1px solid var(--line);
  margin-top:12px;
  padding:15px 8px 4px}
.project-other span {
  font-size:9px;
  color:var(--muted)}
.project-other p {
  font-size:11px;
  margin:5px 0}
.project-overview {
  background:var(--green);
  color:#fff;
  border-radius:17px;
  padding:26px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center}
.project-overview h2 {
  font-size:22px;
  margin:6px 0}
.project-overview p {
  font-size:11px;
  color:#bcd5cf}
.project-people {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px}
.project-people span {
  font-size:9px;
  background:rgba(255,255,255,.1);
  padding:6px 8px;
  border-radius:6px}
.project-people b {
  color:#f4b29f}
.project-percent {
  text-align:center;
  border-left:1px solid rgba(255,255,255,.16);
  padding-left:25px}
.project-percent strong,.project-percent span {
  display:block}
.project-percent strong {
  font-size:30px}
.project-percent span {
  font-size:9px;
  color:#b9d2cc}
.project-kpis {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  margin:14px 0}
.project-kpis div {
  padding:16px 18px;
  border-right:1px solid var(--line)}
.project-kpis div:last-child {
  border:0}
.project-kpis span,.project-kpis strong {
  display:block}
.project-kpis span {
  font-size:9px;
  color:var(--muted)}
.project-kpis strong {
  font-size:20px;
  margin-top:5px}
.project-feed {
  display:grid;
  grid-template-columns:40px 1fr auto;
  gap:12px;
  align-items:center;
  padding:15px 0;
  border-bottom:1px solid var(--line)}
.project-feed:last-child {
  border:0}
.project-feed h3 {
  font-size:12px;
  margin:0}
.project-feed p {
  font-size:10px;
  color:#536762;
  margin:5px 0}
.project-feed small {
  font-size:9px;
  color:var(--muted)}
.project-feed button {
  border:0;
  background:#eef4f1;
  color:#35675e;
  border-radius:7px;
  padding:7px 10px}

@media(max-width:1100px) {
  .metrics {
  grid-template-columns:repeat(2,1fr);
  row-gap:20px}
.metrics>div:nth-child(2) {
  border:0}
.kanban {
  grid-template-columns:repeat(2,1fr)}
.task-grid {
  grid-template-columns:1fr}
.dashboard-grid {
  grid-template-columns:1fr}
.value-stats {
  display:none}
.project-layout {
  grid-template-columns:1fr}
.project-sidebar {
  display:none}}

@media(max-width:760px) {
  .sidebar {
  transform:translateX(-100%);
  transition:.25s}
.sidebar.open {
  transform:translateX(0)}
.main {
  margin-left:0}
.mobile-menu {
  display:block}
.topbar {
  padding:0 16px}
.top-actions .icon-btn {
  display:none}
.page {
  padding:22px 16px 45px}
.hero {
  padding:28px 23px}
.hero-ring {
  display:none}
.hero h1,.page-heading h1 {
  font-size:26px}
.page-heading {
  align-items:flex-start;
  gap:15px}
.page-heading>.primary {
  white-space:nowrap}
.stat-strip,.month-cards {
  grid-template-columns:repeat(2,1fr)}
.stat-strip div:nth-child(2),.month-cards div:nth-child(2) {
  border-right:0}
.report-row {
  grid-template-columns:38px 1fr auto;
  padding:16px}
.report-row time {
  display:none}
.report-row>button {
  grid-column:2/4;
  text-align:left}
.kanban {
  grid-template-columns:1fr}
.issue-toolbar {
  overflow:auto}
.issue-toolbar .filter {
  white-space:nowrap}
.search {
  min-width:230px}
.form-grid {
  grid-template-columns:1fr}
.field.full {
  grid-column:auto}
.modal-card {
  padding:24px 20px}
.month-score {
  display:none}
.week-focus {
  align-items:flex-start;
  gap:15px}
.week-focus button {
  white-space:nowrap}
.topbar .primary.small {
  font-size:0}
.topbar .primary.small:after {
  content:"＋";
  font-size:18px}
.crumb {
  display:none}
.personal-banner {
  padding:22px}
.personal-copy>div {
  flex-direction:column}
.ai-suggestion {
  grid-template-columns:42px 1fr}
.ai-actions {
  grid-column:1/-1}
.impact-score {
  display:none}
.project-rule {
  grid-template-columns:1fr}
.project-overview {
  padding:22px}
.project-percent {
  display:none}
.project-kpis {
  grid-template-columns:1fr 1fr}
.project-kpis div:nth-child(2) {
  border-right:0}}


/* 新人培养项目 */
.newhire-alert,.auto-flow {
  display:grid;
  grid-template-columns:46px 1fr auto;
  align-items:center;
  gap:15px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 22px;
  margin-top:16px}
.alert-icon,.auto-icon {
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  font-weight:800}
.alert-icon {
  background:#fbe0d7;
  color:#bf5944}
.auto-icon {
  background:#dcefe8;
  color:#286e5e}
.newhire-alert span,.auto-flow span {
  font-size:10px;
  color:#d36c57;
  font-weight:800}
.newhire-alert h3,.auto-flow h3 {
  font-size:13px;
  margin:5px 0}
.newhire-alert p,.auto-flow p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.auto-flow {
  margin:0 0 16px;
  background:#f2f7f4}
.newcomer-weekly {
  margin-bottom:16px}
.snapshot-tag {
  font-size:9px;
  background:#e3efe9;
  color:#2f7565;
  border-radius:20px;
  padding:5px 9px;
  margin-right:8px}
.weekly-metric-groups {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:18px}
.weekly-metric-groups>div {
  border:1px solid var(--line);
  border-radius:12px;
  padding:13px}
.weekly-metric-groups h4 {
  font-size:11px;
  margin:0 0 10px}
.metric-link {
  border:0;
  background:transparent;
  width:50%;
  display:inline-flex;
  flex-direction:column;
  text-align:left;
  padding:6px;
  cursor:pointer;
  border-radius:7px}
.metric-link:hover {
  background:#f1f6f3}
.metric-link strong {
  font-size:18px}
.metric-link span {
  font-size:9px;
  color:var(--muted);
  margin-top:2px}
.metric-link.warning strong {
  color:#b57717}
.metric-link.danger strong {
  color:#d05c47}
.project-tabs {
  display:flex;
  overflow-x:auto;
  gap:4px;
  margin:14px 0;
  background:#e9eeeb;
  padding:5px;
  border-radius:12px}
.project-tabs button {
  border:0;
  background:transparent;
  border-radius:8px;
  padding:9px 12px;
  white-space:nowrap;
  font-size:11px;
  color:#5e716c;
  cursor:pointer}
.project-tabs button.active {
  background:#fff;
  color:var(--green);
  font-weight:750;
  box-shadow:0 2px 8px rgba(35,62,57,.08)}
.project-tab-panel {
  display:none}
.project-tab-panel.active {
  display:block}
.source-boundary {
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap;
  background:#fff7e8;
  border:1px solid #f1e2bd;
  border-radius:12px;
  padding:13px 15px;
  font-size:9px;
  margin-bottom:14px}
.source-boundary strong {
  font-size:11px;
  margin-right:5px}
.source-boundary span {
  background:#fff;
  padding:5px 7px;
  border-radius:5px;
  color:#765f2c}
.source-boundary p {
  width:100%;
  margin:3px 0 0;
  color:#8b7545}
.journey {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:25px}
.journey>div {
  text-align:center;
  min-width:58px}
.journey b,.journey span {
  display:block}
.journey b {
  width:35px;
  height:35px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eef2ef;
  margin:auto}
.journey span {
  font-size:9px;
  color:var(--muted);
  margin-top:6px}
.journey i {
  height:2px;
  background:#dfe5e1;
  flex:1}
.journey .done-step b {
  background:#d9eee6;
  color:#26725f}
.journey .current-step b {
  background:var(--green);
  color:#fff;
  box-shadow:0 0 0 5px #e1eee9}
.compact-feed {
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:8px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  align-items:center}
.compact-feed:last-child {
  border:0}
.compact-feed b {
  font-size:10px;
  color:#d16d58}
.compact-feed p {
  font-size:11px;
  margin:0}
.compact-feed span {
  font-size:9px;
  color:var(--muted)}
.table-tools {
  display:flex;
  gap:8px;
  margin:18px 0 10px}
.data-table-wrap {
  overflow:auto}
.data-table {
  width:100%;
  border-collapse:collapse;
  min-width:850px}
.data-table th {
  text-align:left;
  font-size:9px;
  color:#7c8986;
  background:#f4f6f4;
  padding:10px;
  border-bottom:1px solid var(--line);
  white-space:nowrap}
.data-table td {
  font-size:10px;
  padding:12px 10px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  line-height:1.5}
.data-table td small {
  display:block;
  color:var(--muted);
  margin-top:2px}
.check-ok {
  color:#26745f}
.check-warn {
  color:#b37618}
.source-chip {
  display:inline-block;
  font-size:8px;
  border-radius:4px;
  padding:3px 5px;
  margin-bottom:3px}
.source-chip.external {
  background:#e5eafb;
  color:#5069a1}
.source-chip.observed {
  background:#dcefe8;
  color:#28725f}
.status-legend {
  font-size:9px;
  color:var(--muted);
  padding:13px 2px 0}
.camp-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:5px 0 14px}
.camp-toolbar h2 {
  font-size:21px;
  margin:5px 0}
.camp-toolbar p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.camp-toolbar>div:last-child {
  display:flex;
  gap:8px}
.business-shot {
  margin-bottom:14px;
  background:#f8f1e6;
  border-color:#ead9bc}
.business-shot.highlight {
  box-shadow:0 0 0 4px rgba(239,178,111,.25);
  animation:pulseShot 1.1s ease}
.shot-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  border-bottom:1px solid #e3d4ba;
  padding-bottom:15px}
.shot-head span {
  font-size:9px;
  letter-spacing:1px;
  color:#9c6d3c}
.shot-head h2 {
  font-size:19px;
  margin:5px 0}
.shot-head p {
  font-size:9px;
  color:#9a856b;
  margin:0}
.shot-badge {
  font-size:9px;
  background:#fff7e9;
  border:1px solid #dfc7a1;
  color:#936536;
  padding:6px 9px;
  border-radius:20px}
.shot-summary {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  margin:18px 0}
.shot-summary div {
  text-align:center;
  border-right:1px solid #e2d3bb}
.shot-summary div:last-child {
  border:0}
.shot-summary strong,.shot-summary span {
  display:block}
.shot-summary strong {
  font-size:20px}
.shot-summary span {
  font-size:9px;
  color:#8c7b65;
  margin-top:4px}
.shot-columns {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px}
.shot-columns div {
  background:rgba(255,255,255,.58);
  border-radius:9px;
  padding:12px}
.shot-columns h4 {
  font-size:10px;
  margin:0 0 6px}
.shot-columns p {
  font-size:9px;
  line-height:1.6;
  color:#6f6454;
  margin:0}
.score-low {
  color:#d15d47}
.danger-tag {
  background:#fbe0da;
  color:#c7513b}
.handoff-grid,.tracking-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:18px}
.handoff-grid article,.tracking-cards article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:15px}
.handoff-grid header,.tracking-cards header {
  display:flex;
  justify-content:space-between;
  align-items:center}
.handoff-grid article>strong {
  display:block;
  font-size:23px;
  margin:15px 0 8px}
.handoff-grid p,.tracking-cards p {
  font-size:10px;
  color:#5d6e6a;
  line-height:1.7}
.handoff-grid footer,.tracking-cards footer {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  padding-top:10px}
.handoff-grid footer span,.tracking-cards footer span {
  font-size:8px;
  background:#eff3f1;
  border-radius:4px;
  padding:4px 6px}
.boundary-note {
  font-size:10px;
  background:#eff5f2;
  border-left:3px solid #5b9185;
  padding:11px 13px;
  margin:16px 0;
  color:#536a65}
.week-dots {
  display:flex;
  gap:4px;
  margin:14px 0}
.week-dots span {
  font-size:8px;
  padding:5px 6px;
  border-radius:4px;
  background:#eef1ef;
  color:#7b8885}
.week-dots span.done {
  background:#dcefe7;
  color:#24715e}
.week-dots span.stuck {
  background:#fff0d2;
  color:#a66b0d}
.risk-list article {
  display:grid;
  grid-template-columns:38px 1fr auto;
  gap:13px;
  padding:17px 0;
  border-bottom:1px solid var(--line)}
.risk-level {
  width:34px;
  height:34px;
  border-radius:9px;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:800}
.risk-level.high {
  background:#fbe0da;
  color:#c84f38}
.risk-level.mid {
  background:#ffefcf;
  color:#9f6b14}
.risk-list article>div:nth-child(2)>span {
  font-size:9px;
  color:var(--muted)}
.risk-list h3 {
  font-size:13px;
  margin:5px 0}
.risk-list p {
  font-size:9px;
  color:#60716d;
  margin:5px 0}
.risk-list aside {
  text-align:right}
.risk-list aside small {
  display:block;
  font-size:8px;
  color:var(--muted);
  margin-top:7px}
.incentives {
  padding-top:16px}
.incentives h3 {
  font-size:12px}
.incentives span {
  display:inline-block;
  background:#f7ead0;
  color:#8c641d;
  border-radius:20px;
  padding:6px 10px;
  font-size:9px;
  margin:4px 3px}
.summary-sections {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px}
.summary-sections section {
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px}
.summary-sections h3 {
  font-size:11px;
  margin:0 0 10px}
.summary-sections section>div {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px}
.summary-sections button {
  border:0;
  background:#f4f7f5;
  border-radius:7px;
  text-align:left;
  padding:9px;
  font-size:9px;
  color:#61716d}
.summary-sections button b {
  font-size:16px;
  color:var(--ink);
  margin-right:4px}
.manager-inputs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px}
.manager-inputs label {
  font-size:10px;
  font-weight:700}
.manager-inputs textarea {
  display:block;
  width:100%;
  min-height:80px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  margin-top:6px;
  font:inherit;
  font-size:10px;
  line-height:1.6}
.camp-kpis {
  margin-top:0}

@keyframes pulseShot {
  50% {
  transform:scale(1.005)}}

@media(max-width:1100px) {
  .weekly-metric-groups {
  grid-template-columns:1fr 1fr}
.handoff-grid,.tracking-cards {
  grid-template-columns:1fr 1fr}}

@media(max-width:760px) {
  .newhire-alert,.auto-flow {
  grid-template-columns:40px 1fr}
.newhire-alert button,.auto-flow button {
  grid-column:1/-1}
.weekly-metric-groups,.summary-sections,.manager-inputs {
  grid-template-columns:1fr}
.camp-toolbar {
  align-items:flex-start;
  gap:14px}
.camp-toolbar>div:last-child {
  flex-direction:column}
.shot-summary {
  grid-template-columns:repeat(3,1fr);
  gap:12px}
.shot-columns {
  grid-template-columns:1fr}
.handoff-grid,.tracking-cards {
  grid-template-columns:1fr}
.risk-list article {
  grid-template-columns:34px 1fr}
.risk-list aside {
  grid-column:2;
  text-align:left}
.project-tabs {
  margin-left:-2px;
  margin-right:-2px}}


/* 角色视角 */
.role-preview {
  display:flex;
  align-items:center;
  gap:7px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:5px 8px}
.role-preview span {
  font-size:9px;
  color:var(--muted)}
.role-preview select {
  border:0;
  background:transparent;
  color:var(--green);
  font-size:11px;
  font-weight:700;
  outline:0}
.role-scope {
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#fff7e8;
  border:1px solid #f0dfba;
  border-radius:13px;
  padding:12px 16px;
  margin-bottom:14px}
.role-scope>div {
  display:grid;
  grid-template-columns:auto auto;
  gap:4px 10px;
  align-items:center}
.role-scope span {
  font-size:9px;
  color:#b26933;
  font-weight:800}
.role-scope strong {
  font-size:12px}
.role-scope p {
  grid-column:1/-1;
  font-size:9px;
  color:#8b7656;
  margin:0}
.role-scope em {
  font-size:8px;
  font-style:normal;
  color:#9b7b49}
.role-view {
  display:none}
.role-view.active {
  display:block}
.persona-hero {
  border-radius:22px;
  padding:34px 38px;
  display:flex;
  align-items:center;
  justify-content:space-between}
.persona-hero h1 {
  font-size:28px;
  margin:7px 0}
.persona-hero p {
  font-size:12px;
  margin:0}
.trainer-hero {
  background:#e5f0eb}
.supervisor-hero {
  background:#e8edf5}
.projectr-hero {
  background:#f7ead8}
.persona-badge {
  width:84px;
  height:84px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.65);
  font-size:11px;
  font-weight:800}
.persona-metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:16px 0}
.persona-metrics button {
  border:1px solid var(--line);
  background:#fff;
  border-radius:14px;
  padding:18px;
  text-align:left;
  cursor:pointer}
.persona-metrics span,.persona-metrics strong,.persona-metrics small {
  display:block}
.persona-metrics span {
  font-size:10px;
  color:var(--muted)}
.persona-metrics strong {
  font-size:24px;
  margin:7px 0}
.persona-metrics small {
  font-size:9px;
  color:#668079}
.trainee-mini {
  display:grid;
  grid-template-columns:40px 1fr auto;
  align-items:center;
  gap:10px;
  padding:13px 0;
  border-bottom:1px solid var(--line)}
.trainee-mini:last-child {
  border:0}
.trainee-mini b {
  font-size:12px}
.trainee-mini p {
  font-size:9px;
  color:var(--muted);
  margin:4px 0 0}
.health-row {
  display:grid;
  grid-template-columns:45px 1fr 35px;
  gap:10px;
  align-items:center;
  margin:17px 0;
  font-size:10px}
.amber-track i {
  background:#d9a84f}
.red-track i {
  background:#d86a55}


/* 新人0—97天看板 */
.board-scope {
  background:#eef4f1;
  border:1px solid #dbe8e3;
  border-radius:13px;
  padding:14px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px}
.board-scope span,.board-scope strong {
  display:block}
.board-scope span {
  font-size:9px;
  color:#678079}
.board-scope strong {
  font-size:13px;
  margin-top:3px}
.board-scope p {
  font-size:9px;
  color:#62756f;
  margin:0}
.board-switch {
  display:flex;
  gap:4px;
  margin-bottom:14px}
.board-switch button {
  border:1px solid var(--line);
  background:#fff;
  padding:9px 14px;
  font-size:10px}
.board-switch button:first-child {
  border-radius:9px 0 0 9px}
.board-switch button:last-child {
  border-radius:0 9px 9px 0}
.board-switch button.active {
  background:var(--green);
  color:#fff}
.board-switch b {
  margin-left:4px}
.board-panel {
  display:none}
.board-panel.active {
  display:block}
.board-metrics {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  margin-bottom:14px}
.board-metrics button {
  border:1px solid var(--line);
  background:#fff;
  border-radius:13px;
  padding:15px;
  text-align:left}
.board-metrics span,.board-metrics strong,.board-metrics small {
  display:block}
.board-metrics span {
  font-size:9px;
  color:var(--muted)}
.board-metrics strong {
  font-size:24px;
  margin:7px 0}
.board-metrics small {
  font-size:8px;
  color:#71847f}
.board-metrics .warning strong {
  color:#ae7416}
.board-metrics .danger strong {
  color:#cc5b45}
.board-top-grid {
  grid-template-columns:1.7fr 1fr}
.stage-pipeline {
  display:flex;
  align-items:center;
  margin-top:28px}
.stage-pipeline div {
  text-align:center;
  min-width:54px}
.stage-pipeline b,.stage-pipeline span,.stage-pipeline small {
  display:block}
.stage-pipeline b {
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#dcece6;
  color:#246c5b;
  margin:auto}
.stage-pipeline span {
  font-size:8px;
  margin-top:6px}
.stage-pipeline small {
  font-size:7px;
  color:#c1644e;
  margin-top:3px}
.stage-pipeline i {
  height:2px;
  background:#dfe6e2;
  flex:1}
.leave-bars>div {
  display:grid;
  grid-template-columns:78px 1fr 20px;
  align-items:center;
  gap:8px;
  font-size:9px;
  margin:15px 0}
.base-compare {
  margin-top:14px}
.base-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin-top:17px}
.base-grid article {
  border:1px solid var(--line);
  border-radius:11px;
  padding:13px}
.base-grid header {
  display:flex;
  justify-content:space-between}
.base-grid article>strong {
  display:block;
  font-size:20px;
  margin:11px 0 5px}
.base-grid p {
  font-size:9px;
  margin:0 0 6px}
.base-grid small {
  font-size:8px;
  color:var(--muted)}
.trainee-master {
  margin:14px 0}
.cohort-table {
  min-width:1100px}
.person-link {
  border:0;
  background:none;
  text-align:left;
  padding:0;
  color:var(--ink);
  cursor:pointer}
.person-link:hover b {
  color:#2b7867}
.reason-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:17px}
.reason-grid div {
  background:#f4f7f5;
  border-radius:9px;
  padding:12px;
  text-align:center}
.reason-grid strong,.reason-grid span {
  display:block}
.reason-grid strong {
  font-size:20px}
.reason-grid span {
  font-size:8px;
  color:var(--muted);
  margin-top:3px}
.archive-hero {
  background:#e8efeb;
  border-radius:17px;
  padding:24px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px}
.archive-hero span {
  font-size:9px;
  color:#b2664c;
  font-weight:800}
.archive-hero h2 {
  font-size:19px;
  margin:6px 0}
.archive-hero p {
  font-size:10px;
  color:var(--muted)}
.archive-hero>strong {
  font-size:35px}
.archive-hero>strong small {
  font-size:11px}
.trainee-drawer {
  display:none;
  position:fixed;
  inset:0;
  z-index:130}
.trainee-drawer.open {
  display:block}
.drawer-backdrop {
  position:absolute;
  inset:0;
  background:rgba(10,34,31,.48)}
.trainee-drawer aside {
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:min(620px,100%);
  background:#fff;
  padding:28px 32px;
  overflow:auto;
  box-shadow:-20px 0 50px rgba(12,42,37,.15)}
.trainee-drawer header {
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:18px}
.trainee-drawer header h2 {
  font-size:24px;
  margin:5px 0}
.trainee-drawer header p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.trainee-drawer header button {
  border:0;
  background:#edf1ef;
  border-radius:50%;
  width:33px;
  height:33px;
  font-size:20px}
.drawer-status {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:16px 0}
.drawer-status>span {
  background:#f4f7f5;
  border-radius:9px;
  padding:10px}
.drawer-status b,.drawer-status strong,.drawer-status em {
  display:block}
.drawer-status b {
  font-size:8px;
  color:var(--muted);
  margin-bottom:5px}
.drawer-status strong {
  font-size:11px}
.trainee-drawer section {
  border-top:1px solid var(--line);
  padding:17px 0}
.trainee-drawer section h3 {
  font-size:12px}
.timeline>div {
  display:grid;
  grid-template-columns:58px 1fr;
  gap:12px;
  position:relative;
  padding:8px 0}
.timeline time {
  font-size:9px;
  color:#bf674f}
.timeline p {
  font-size:10px;
  margin:0;
  border-left:2px solid #dce8e3;
  padding-left:12px}
.timeline p b,.timeline p span {
  display:block}
.timeline p span {
  font-size:8px;
  color:var(--muted);
  margin-top:3px}
.profile-scores {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px}
.profile-scores span {
  background:#eef4f1;
  border-radius:8px;
  padding:10px;
  font-size:8px;
  color:var(--muted)}
.profile-scores b {
  display:block;
  font-size:15px;
  color:var(--ink);
  margin-top:4px}

@media(max-width:1200px) {
  .board-metrics {
  grid-template-columns:repeat(3,1fr)}
.base-grid {
  grid-template-columns:repeat(3,1fr)}
.persona-metrics {
  grid-template-columns:1fr 1fr}}

@media(max-width:760px) {
  .role-preview span {
  display:none}
.role-preview {
  padding:4px}
.role-scope {
  align-items:flex-start}
.role-scope>div {
  grid-template-columns:1fr}
.role-scope p {
  grid-column:auto}
.role-scope em {
  display:none}
.persona-hero {
  padding:25px 22px}
.persona-badge {
  display:none}
.persona-metrics,.board-metrics,.base-grid {
  grid-template-columns:1fr 1fr}
.board-scope {
  align-items:flex-start;
  gap:10px}
.board-scope p {
  max-width:50%}
.board-top-grid {
  grid-template-columns:1fr}
.stage-pipeline {
  overflow:auto;
  padding-bottom:8px}
.stage-pipeline i {
  min-width:18px}
.base-grid article:last-child {
  grid-column:1/-1}
.drawer-status,.profile-scores {
  grid-template-columns:1fr 1fr}
.trainee-drawer aside {
  padding:23px 18px}}


/* P0：权限、导入与敏感信息 */
[hidden] {
  display:none!important}
.page-scope-note {
  margin:-4px 0 14px;
  padding:11px 15px;
  border-radius:10px;
  background:#eef4f1;
  border:1px solid #dce8e3;
  color:#47665f;
  font-size:10px;
  font-weight:700}
.import-status-strip {
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr auto;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:13px;
  padding:13px 16px;
  margin-bottom:14px}
.import-status-strip div {
  border-right:1px solid var(--line);
  padding-right:10px}
.import-status-strip span,.import-status-strip strong {
  display:block}
.import-status-strip span {
  font-size:8px;
  color:var(--muted)}
.import-status-strip strong {
  font-size:10px;
  margin-top:4px}
.permission-summary {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:14px}
.permission-summary article {
  background:#fff;
  border:1px solid var(--line);
  border-radius:13px;
  padding:16px}
.permission-summary span,.permission-summary strong,.permission-summary p {
  display:block}
.permission-summary span {
  font-size:9px;
  color:var(--muted)}
.permission-summary strong {
  font-size:20px;
  margin:7px 0}
.permission-summary p {
  font-size:8px;
  color:#6d807b;
  margin:0}
.admin-grid {
  grid-template-columns:1fr 1fr}
.assignment-list>div {
  display:grid;
  grid-template-columns:90px 1fr;
  gap:3px 10px;
  padding:12px 0;
  border-bottom:1px solid var(--line)}
.assignment-list>div:last-child {
  border:0}
.assignment-list b {
  font-size:10px}
.assignment-list span {
  font-size:10px}
.assignment-list small {
  grid-column:2;
  font-size:8px;
  color:var(--muted)}
.assignment-list.compact>div {
  grid-template-columns:1fr auto}
.needs-config {
  color:#b37018;
  font-weight:750}
.assignment-matrix,.import-log {
  margin-top:14px}
.import-modal {
  z-index:180}
.import-card {
  width:min(760px,calc(100% - 30px))}
.import-steps {
  display:flex;
  align-items:center;
  justify-content:center;
  margin:20px 0}
.import-steps span {
  font-size:9px;
  color:var(--muted)}
.import-steps span.active {
  color:var(--green);
  font-weight:800}
.import-steps i {
  height:1px;
  background:var(--line);
  width:65px;
  margin:0 10px}
.upload-zone {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1.5px dashed #a9c5bb;
  background:#f3f8f5;
  border-radius:13px;
  padding:25px;
  cursor:pointer}
.upload-zone b {
  font-size:12px}
.upload-zone span {
  font-size:9px;
  color:var(--muted);
  margin-top:6px}
.upload-zone input {
  margin-top:14px;
  font-size:9px}
.import-preview {
  margin-top:14px}
.empty-preview {
  padding:25px;
  text-align:center;
  color:var(--muted);
  font-size:10px;
  background:#f6f7f6;
  border-radius:10px}
.preview-head {
  display:flex;
  justify-content:space-between;
  align-items:center}
.preview-head span {
  font-size:8px;
  color:var(--muted)}
.preview-head h3 {
  font-size:11px;
  margin:4px 0}
.preview-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:12px 0}
.preview-stat {
  background:#f3f6f4;
  border-radius:9px;
  padding:11px}
.preview-stat span,.preview-stat strong {
  display:block}
.preview-stat span {
  font-size:8px;
  color:var(--muted)}
.preview-stat strong {
  font-size:17px;
  margin-top:5px}
.preview-stat.ok strong {
  color:#2c7564}
.preview-stat.warn strong {
  color:#a77118}
.preview-stat.danger strong {
  color:#c75844}
.mapping-list {
  background:#fff8e9;
  border:1px solid #f0dfb8;
  border-radius:9px;
  padding:10px 13px}
.mapping-list p {
  font-size:9px;
  color:#6f6249;
  margin:5px 0}
.sensitive-head {
  display:flex;
  align-items:center;
  justify-content:space-between}
.sensitive-head h3 {
  margin:0}
.sensitive-head em {
  font-size:8px;
  font-style:normal;
  background:#f4eaf5;
  color:#86568d;
  padding:5px 7px;
  border-radius:20px}
.five-scores {
  grid-template-columns:repeat(5,1fr)}
.privacy-hint {
  font-size:8px;
  color:#7b6d82;
  background:#f7f0f7;
  border-radius:7px;
  padding:8px 10px}
.sensitive-placeholder {
  background:#f6f3f6;
  border:1px dashed #d7cbd8;
  border-radius:10px;
  margin-top:14px;
  padding:15px!important}
.sensitive-placeholder p {
  font-size:9px;
  color:var(--muted)}
body[data-role="supervisor"] #admin .admin-grid .text-btn {
  display:none}

@media(max-width:900px) {
  .permission-summary {
  grid-template-columns:1fr 1fr}
.import-status-strip {
  grid-template-columns:1fr 1fr}
.import-status-strip button {
  grid-column:1/-1}
.preview-grid {
  grid-template-columns:1fr 1fr}}

@media(max-width:760px) {
  .permission-summary,.admin-grid {
  grid-template-columns:1fr}
.import-status-strip {
  grid-template-columns:1fr}
.import-status-strip div {
  border-right:0;
  border-bottom:1px solid var(--line);
  padding-bottom:8px}
.five-scores {
  grid-template-columns:1fr 1fr}
.preview-grid {
  grid-template-columns:1fr 1fr}}


/* 多项目模板 */
.project-view {
  display:none}
.project-view.active {
  display:block}
.bridge-overview {
  background:#f8edda}
.upgrade-overview {
  background:#e3efeb}
.training-phase-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:14px 0}
.training-phase-grid article {
  background:#fff;
  border:1px solid var(--line);
  border-radius:13px;
  padding:16px}
.training-phase-grid article>span {
  font-size:9px;
  color:#c36a4e;
  font-weight:800}
.training-phase-grid h3 {
  font-size:13px;
  margin:7px 0}
.training-phase-grid p {
  font-size:9px;
  line-height:1.7;
  color:#63736f;
  min-height:46px}
.highlight-panel {
  margin-top:14px}
.ability-shot {
  max-width:980px;
  margin:0 auto}
.group-post {
  background:rgba(255,255,255,.65);
  border-radius:10px;
  padding:16px 18px}
.group-post h4 {
  font-size:10px;
  margin:10px 0 4px}
.group-post p {
  font-size:9px;
  line-height:1.75;
  color:#625b50;
  margin:0}
.shot-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:14px}

@media(max-width:900px) {
  .training-phase-grid {
  grid-template-columns:1fr}
.project-view .project-kpis {
  grid-template-columns:1fr 1fr}}


/* 知行成长青：团队协作办公主题 */
:root {
  --ink:#243536;
  --muted:#6b7d7c;
  --line:#dde8e5;
  --paper:#f5f8f7;
  --white:#fff;
  --green:#278b7e;
  --mint:#e8f4f1;
  --coral:#e68168;
  --amber:#e7b44f;
  --shadow:0 8px 26px rgba(35,74,69,.055)}

body {
  background:var(--paper);
  color:var(--ink)}

.sidebar {
  background:#f8faf9;
  color:#425956;
  border-right:1px solid var(--line);
  padding-top:18px}

.brand {
  padding:0 8px 18px;
  gap:7px;
  align-items:flex-start;
  flex-direction:column}
.brand img {
  display:block;
  width:174px;
  height:68px;
  object-fit:contain;
  object-position:left center}
.brand strong {
  color:#243536;
  font-size:14px}
.brand small {
  color:#728380;
  opacity:1;
  letter-spacing:.3px;
  font-size:9px;
  margin-top:2px}

.nav-item {
  color:#5f726f}
.nav-item:hover,.nav-item.active {
  background:#e8f4f1;
  color:#23776e}
.nav-item.active {
  box-shadow:inset 3px 0 #278b7e}
.nav-item em {
  background:#e68168}
.nav-label {
  color:#84938f;
  opacity:1}
.sidebar-foot {
  border-top-color:var(--line)}
.sidebar-foot .avatar {
  background:#d9efea;
  color:#23776e}
.sidebar-foot button {
  color:#657875}
.sidebar-foot small {
  color:#778783;
  opacity:1}

.topbar {
  background:rgba(255,255,255,.94);
  border-bottom-color:var(--line)}
.crumb span {
  color:#23776e}
.primary {
  background:#278b7e;
  box-shadow:0 5px 14px rgba(39,139,126,.16)}
.primary:hover {
  background:#23776e}
.text-btn,.report-row>button,.week-row>button {
  color:#278b7e}
.eyebrow {
  color:#278b7e}
.hero {
  background:#eaf4f1}
.hero:after {
  background:rgba(230,129,104,.12)}
.hero-ring {
  background:conic-gradient(#278b7e 78%,rgba(255,255,255,.7) 0)}
.hero-ring:before {
  background:#eaf4f1}
.panel {
  box-shadow:var(--shadow)}
.task-card.coral {
  background:#fbefeb}
.task-card.amber {
  background:#fbf3df}
.task-card.mint {
  background:#e8f4f1}
.week-focus,.month-hero {
  background:linear-gradient(125deg,#23776e,#319487)}
.impact-hero {
  background:linear-gradient(125deg,#23776e,#319487)}
.period-switch button.active,.board-switch button.active {
  background:#278b7e}
.ai-mark {
  background:#278b7e}
.track i {
  background:#3b9689}
.source-boundary {
  background:#edf6f3;
  border-color:#d8eae5}
.page-scope-note,.board-scope {
  background:#edf6f3;
  border-color:#d8eae5}
.role-scope {
  background:#fbf5e6;
  border-color:#eee0bb}
.project-nav.active {
  background:#e8f4f1}
.project-nav em {
  background:#dff0eb;
  color:#23776e}
.import-status-strip {
  grid-template-columns:1fr 1fr auto}

.project-overview,.bridge-overview,.upgrade-overview,.management-overview,.culture-overview,.business-overview {
  background:linear-gradient(135deg,#e7f3f0,#f9fbfa);
  color:#243536;
  border:1px solid #d5e7e2}
.project-overview p {
  color:#637774}
.project-people span {
  background:#fff;
  border:1px solid #dbe9e5;
  color:#506662}
.project-people b {
  color:#278b7e}
.project-percent {
  border-left-color:#ccdfda}
.project-percent span {
  color:#6f817e}
.project-tabs button.active {
  color:#23776e;
  border-bottom-color:#278b7e}
.teal-bg {
  background:#dcefeb;
  color:#23776e}
.gold-bg {
  background:#f8eccb;
  color:#8b671d}
.slate-bg {
  background:#e5edf0;
  color:#4e6d78}

.report-center-tabs {
  display:flex;
  align-items:center;
  gap:4px;
  margin:-9px 0 18px;
  padding:5px;
  background:#edf3f1;
  border:1px solid var(--line);
  border-radius:12px;
  width:fit-content}
.report-center-tabs button {
  border:0;
  background:transparent;
  color:#6c7d7a;
  padding:9px 22px;
  border-radius:8px;
  font-weight:700;
  cursor:pointer}
.report-center-tabs button.active {
  background:#fff;
  color:#23776e;
  box-shadow:0 2px 8px rgba(34,80,73,.08)}
.report-center-tabs span {
  font-size:9px;
  color:#7f8e8b;
  padding:0 10px}


/* 项目管理公共组件 */
.project-charter {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:14px 0}
.project-charter article {
  background:#fff;
  border:1px solid var(--line);
  border-radius:13px;
  padding:17px}
.project-charter article>span {
  font-size:9px;
  color:#278b7e;
  font-weight:800;
  letter-spacing:.5px}
.project-charter h3 {
  font-size:13px;
  margin:7px 0}
.project-charter p {
  font-size:9px;
  color:var(--muted);
  line-height:1.7;
  margin:0}
.milestone-panel {
  margin-top:14px}
.milestone-line {
  display:flex;
  align-items:center;
  margin-top:25px}
.milestone-line>div {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:100px}
.milestone-line>div>b {
  width:30px;
  height:30px;
  border-radius:50%;
  background:#eef3f1;
  color:#73837f;
  display:grid;
  place-items:center;
  font-size:10px}
.milestone-line .done b {
  background:#dcefe9;
  color:#23776e}
.milestone-line .current b {
  background:#278b7e;
  color:#fff;
  box-shadow:0 0 0 5px #e2f0ed}
.milestone-line span,.milestone-line small {
  display:block}
.milestone-line span {
  font-size:9px;
  font-weight:700}
.milestone-line small {
  font-size:7px;
  color:var(--muted);
  margin-top:3px}
.milestone-line>i {
  height:2px;
  background:#dfe8e5;
  flex:1;
  margin:0 7px}
.readiness-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:18px}
.readiness-grid article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:15px;
  background:#fbfcfc}
.readiness-grid article>span {
  font-size:9px;
  color:#e68168;
  font-weight:800}
.readiness-grid h3 {
  font-size:12px;
  margin:7px 0}
.readiness-grid p {
  font-size:9px;
  color:var(--muted);
  min-height:28px;
  line-height:1.55}
.culture-category-grid,.sku-health-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:16px}
.culture-category-grid article,.sku-health-grid article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:15px;
  background:#fbfcfc}
.culture-category-grid b,.culture-category-grid strong,.culture-category-grid span {
  display:block}
.culture-category-grid b {
  font-size:10px}
.culture-category-grid strong {
  font-size:22px;
  margin:10px 0;
  color:#278b7e}
.culture-category-grid span {
  font-size:8px;
  color:var(--muted);
  line-height:1.5}
.culture-timeline {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin-top:18px}
.culture-timeline article {
  border-top:3px solid #dce7e4;
  background:#fafcfb;
  border-radius:5px 5px 12px 12px;
  padding:14px}
.culture-timeline article.current {
  border-top-color:#278b7e;
  background:#edf6f3}
.culture-timeline time {
  font-size:9px;
  color:#278b7e;
  font-weight:800}
.culture-timeline h3 {
  font-size:11px;
  margin:7px 0}
.culture-timeline p {
  font-size:8px;
  color:var(--muted);
  line-height:1.6;
  min-height:50px}
.matrix-table td:not(:first-child) {
  text-align:center}
.evidence-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:18px}
.evidence-grid article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px}
.evidence-cover {
  height:90px;
  border-radius:9px;
  background:#dcefeb;
  display:grid;
  place-items:center;
  color:#23776e;
  font-size:12px;
  font-weight:800}
.evidence-cover.warm {
  background:#f8edcf;
  color:#8a681e}
.evidence-cover.coral-cover {
  background:#f9e4de;
  color:#a5523f}
.evidence-grid article>span {
  font-size:8px;
  color:var(--muted);
  display:block;
  margin-top:10px}
.evidence-grid h3 {
  font-size:11px;
  margin:5px 0 11px}
.evidence-grid footer {
  display:flex;
  justify-content:space-between;
  align-items:center}
.evidence-grid footer button {
  border:0;
  background:none;
  color:#278b7e;
  font-size:9px}
.sku-health-grid article header {
  display:flex;
  justify-content:space-between;
  align-items:center}
.sku-health-grid article>strong {
  display:block;
  font-size:22px;
  margin:14px 0 7px}
.sku-health-grid p {
  font-size:8px;
  color:var(--muted);
  line-height:1.6}
.metrics-table td {
  text-align:center}
.metrics-table td:first-child {
  text-align:left}
.action-log article {
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  align-items:center}
.action-log article:last-child {
  border:0}
.action-log time {
  font-size:9px;
  color:#278b7e;
  font-weight:700}
.action-log h3 {
  font-size:11px;
  margin:0 0 5px}
.action-log p {
  font-size:9px;
  color:var(--muted);
  margin:0}
.management-overview {
  border-top:3px solid #278b7e}
.culture-overview {
  border-top:3px solid #e7b44f}
.business-overview {
  border-top:3px solid #527fa3}


@media(max-width:1200px) {
  .culture-timeline {
  grid-template-columns:repeat(3,1fr)}
.culture-category-grid,.sku-health-grid {
  grid-template-columns:1fr 1fr}
.readiness-grid {
  grid-template-columns:1fr 1fr}}

@media(max-width:900px) {
  .project-charter {
  grid-template-columns:1fr}
.milestone-line {
  overflow:auto;
  padding:8px 0}
.milestone-line>i {
  min-width:24px}
.evidence-grid {
  grid-template-columns:1fr 1fr}
.report-center-tabs span {
  display:none}}

@media(max-width:760px) {
  .brand img {
  width:150px}
.report-center-tabs {
  width:100%}
.report-center-tabs button {
  flex:1;
  padding:9px}
.culture-timeline,.culture-category-grid,.sku-health-grid,.readiness-grid,.evidence-grid {
  grid-template-columns:1fr}
.action-log article {
  grid-template-columns:58px 1fr}
.action-log article>em {
  grid-column:2}
.project-charter {
  grid-template-columns:1fr}}

/* 项目组合：负责人在工作台上看到跨项目、跨基地的管理视角 */
.portfolio-title {
  margin-top:28px}

.portfolio-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:16px}

.portfolio-card {
  position:relative;
  text-align:left;
  background:#fff;
  border:1px solid #dfe9e6;
  border-radius:16px;
  padding:18px 18px 17px;
  box-shadow:0 6px 18px rgba(42,85,78,.05);
  transition:.2s ease;
  color:#263d39}

.portfolio-card:hover {
  transform:translateY(-2px);
  border-color:#83bdb4;
  box-shadow:0 10px 24px rgba(42,85,78,.09)}

.portfolio-card span {
  display:block;
  font-size:13px;
  color:#6c817d;
  margin-bottom:8px}

.portfolio-card strong {
  font-size:18px;
  display:block;
  margin-bottom:7px}

.portfolio-card p {
  font-size:13px;
  line-height:1.55;
  color:#72837f;
  padding-right:52px}

.portfolio-card em {
  position:absolute;
  right:16px;
  top:16px;
  font-style:normal;
  font-size:12px;
  border-radius:99px;
  padding:4px 8px}

.portfolio-card.healthy em {
  background:#e6f5f0;
  color:#247567}
.portfolio-card.focus em {
  background:#fff2dc;
  color:#9a661b}
.portfolio-card.setup em {
  background:#edf2f1;
  color:#637672}

.portfolio-card.healthy {
  border-top:3px solid #49a997}
.portfolio-card.focus {
  border-top:3px solid #e7aa55}
.portfolio-card.setup {
  border-top:3px solid #94a7a3}

.portfolio-detail {
  margin-top:16px}

.base-matrix {
  display:grid;
  gap:7px;
  margin-top:8px}

.base-matrix>div {
  display:grid;
  grid-template-columns:90px repeat(4,1fr);
  align-items:center;
  gap:7px;
  min-height:40px;
  padding:5px 8px;
  border-radius:10px;
  background:#f8faf9}

.base-matrix .matrix-head {
  background:#edf4f2;
  color:#657a76;
  font-size:12px}

.base-matrix b {
  font-size:13px}
.base-matrix em {
  font-style:normal;
  text-align:center;
  font-size:12px;
  padding:6px;
  border-radius:7px}

.matrix-good {
  background:#e4f3ef;
  color:#267568}
.matrix-watch {
  background:#fff0d7;
  color:#986319}
.matrix-risk {
  background:#fde7e2;
  color:#b64e3d}

.milestone-brief {
  display:grid;
  grid-template-columns:68px 1fr auto;
  align-items:center;
  gap:12px;
  padding:15px 0;
  border-bottom:1px solid #edf1f0}

.milestone-brief:last-child {
  border-bottom:0}
.milestone-brief time {
  font-size:12px;
  color:#638079;
  background:#edf6f3;
  padding:7px;
  border-radius:8px;
  text-align:center}
.milestone-brief b {
  font-size:14px}
.milestone-brief p {
  font-size:12px;
  color:#7b8a87;
  margin-top:4px}

@media(max-width:1120px) {
  .portfolio-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:720px) {
  .portfolio-grid {
  grid-template-columns:1fr}
.base-matrix {
  overflow-x:auto}
.base-matrix>div {
  min-width:570px}}


/* 手机端：围绕日报填写、项目更新和新人跟进的单手操作体验 */
.mobile-bottom-nav,.mobile-sidebar-scrim {
  display:none}

@media(max-width:760px) {
  
  html {
  scroll-padding-top:68px}

  body {
  overflow-x:hidden;
  padding-bottom:calc(76px + env(safe-area-inset-bottom));
  -webkit-text-size-adjust:100%}

  button,input,select,textarea {
  font-size:16px}

  .main {
  width:100%;
  min-width:0}

  .topbar {
  height:62px;
  padding:0 12px;
  gap:8px;
  z-index:45}

  .mobile-menu {
  display:grid;
  place-items:center;
  flex:0 0 40px}

  .topbar>div:nth-child(2) {
  min-width:0;
  flex:1}
.crumb {
  display:block;
  font-size:9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis}
.today {
  font-size:11px;
  margin-top:4px;
  white-space:nowrap}

  .top-actions {
  gap:6px}
.role-preview {
  padding:4px 6px;
  max-width:108px}
.role-preview select {
  max-width:92px;
  font-size:11px}
.topbar .primary.small {
  width:40px;
  height:40px;
  padding:0;
  border-radius:12px}

  .page {
  padding:18px 14px 26px;
  max-width:100%}

  .page-heading {
  flex-direction:column;
  margin-bottom:18px}
.page-heading>div:last-child,.page-heading>.primary {
  width:100%}
.page-heading>div:last-child button {
  flex:1}
.page-heading>.primary {
  white-space:normal}
.page-heading h1 {
  font-size:25px;
  line-height:1.2}
.page-heading p {
  font-size:12px;
  line-height:1.6}

  .hero,.persona-hero {
  padding:24px 20px;
  border-radius:18px}
.hero h1,.persona-hero h1 {
  font-size:24px}
.hero p,.persona-hero p {
  font-size:12px;
  line-height:1.65}
.persona-badge {
  display:none}

  .role-scope {
  align-items:flex-start;
  padding:15px}
.role-scope>div {
  display:block}
.role-scope strong {
  display:block;
  margin:7px 0}
.role-scope p {
  line-height:1.5}
.role-scope>em {
  display:none}

  .section-title {
  margin:24px 0 12px;
  align-items:flex-end}
.section-title p {
  line-height:1.45}
.section-title .text-btn {
  font-size:11px;
  white-space:nowrap}

  .panel {
  padding:18px 16px;
  border-radius:15px}
.panel-head {
  gap:10px}
.panel-head>div {
  min-width:0}
.panel-head h2 {
  font-size:16px}
.panel-head button {
  white-space:nowrap}

  .task-card {
  padding:17px;
  min-height:96px}
.task-card h3 {
  font-size:14px}
.task-card p {
  line-height:1.45}

  .newhire-alert,.auto-flow {
  grid-template-columns:38px 1fr;
  padding:15px;
  gap:11px}
.newhire-alert .alert-icon,.auto-flow .auto-icon {
  width:38px;
  height:38px}
.newhire-alert button,.auto-flow button {
  grid-column:2;
  justify-self:start;
  padding:7px 0}
.newhire-alert h3,.auto-flow h3 {
  line-height:1.5}

  .personal-banner {
  display:block;
  padding:19px 17px}
.personal-copy h2 {
  font-size:17px;
  line-height:1.45}
.personal-copy p {
  line-height:1.65}
.personal-copy>div {
  display:grid;
  grid-template-columns:1fr 1fr}
.personal-copy>div button {
  padding:10px 8px}

  .metrics {
  grid-template-columns:1fr 1fr;
  gap:0}
.metrics>div {
  padding:12px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.metrics>div:nth-child(2n) {
  border-right:0}
.metrics>div:nth-last-child(-n+2) {
  border-bottom:0}
.metrics strong {
  font-size:23px}

  .persona-metrics,.board-metrics,.month-cards,.stat-strip {
  grid-template-columns:1fr 1fr}
.persona-metrics button {
  padding:15px 13px}
.persona-metrics strong {
  font-size:20px}

  .report-center-tabs {
  position:sticky;
  top:70px;
  z-index:9;
  margin:0 0 14px;
  width:100%;
  overflow-x:auto;
  box-shadow:0 5px 15px rgba(35,74,69,.06)}
.report-center-tabs button {
  min-width:72px;
  padding:9px 13px}

  .list-panel {
  background:transparent;
  border:0;
  box-shadow:none}
.list-panel .panel-head {
  padding:14px 4px}
.report-row {
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  margin-bottom:10px;
  padding:15px;
  grid-template-columns:38px 1fr;
  gap:10px}
.report-row .report-main>div {
  flex-wrap:wrap}
.report-main p {
  font-size:12px;
  line-height:1.65}
.report-main small {
  line-height:1.55;
  display:block}
.report-row>button {
  grid-column:2;
  width:max-content;
  padding:7px 0}
.report-row time {
  display:none}

  .week-row {
  grid-template-columns:38px 1fr;
  gap:10px}
.week-row>em {
  grid-column:2;
  justify-self:start}
.week-row>button {
  grid-column:2;
  justify-self:start;
  padding:7px 0}
.week-row p {
  line-height:1.6}

  .week-focus,.month-hero,.impact-hero {
  padding:22px 19px;
  align-items:flex-start}
.week-focus h2,.month-hero h2,.impact-hero h2 {
  font-size:18px;
  line-height:1.5}
.week-focus button {
  display:none}
.month-hero p,.impact-hero p {
  line-height:1.65}

  .weekly-metric-groups {
  grid-template-columns:1fr 1fr;
  gap:8px}
.weekly-metric-groups>div {
  padding:10px}
.metric-link {
  width:100%;
  padding:5px 2px}
.newcomer-weekly .panel-head {
  align-items:flex-start}
.newcomer-weekly .panel-head>div:last-child {
  display:none}

  .ai-suggestion {
  grid-template-columns:38px 1fr;
  padding:16px;
  gap:10px}
.ai-mark {
  width:38px;
  height:38px}
.ai-suggestion h3 {
  line-height:1.55}
.ai-suggestion p {
  line-height:1.6}
.ai-actions {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr}
.ai-actions button {
  padding:10px 8px}

  .monthly-detail-grid {
  grid-template-columns:1fr}
.project-progress {
  grid-template-columns:38px 1fr auto;
  gap:10px}
.project-progress>em {
  grid-column:2;
  justify-self:start}
.project-progress p {
  line-height:1.5}

  .impact-hero {
  display:block}
.period-switch {
  overflow-x:auto}
.period-switch button {
  white-space:nowrap;
  flex:1}

  .issue-toolbar {
  margin:0 -14px 14px;
  padding:0 14px}
.kanban {
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  margin:0 -14px;
  padding:0 14px 12px;
  gap:10px}
.kanban-col {
  flex:0 0 84vw;
  min-height:420px;
  scroll-snap-align:start}

  .project-rule {
  display:none}
.project-layout {
  display:block}
.project-sidebar {
  display:flex!important;
  gap:8px;
  overflow-x:auto;
  margin:0 -14px 12px;
  padding:7px 14px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  scroll-snap-type:x proximity}
.project-sidebar::-webkit-scrollbar {
  display:none}
.project-sidebar .panel-head,.project-sidebar .project-other {
  display:none}
.project-nav {
  flex:0 0 205px;
  min-width:205px;
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 3px 10px rgba(35,74,69,.04);
  scroll-snap-align:start}
.project-nav.active {
  border-color:#85bdb5;
  background:#e8f4f1}

  .project-overview {
  display:block;
  padding:20px 17px}
.project-overview h2 {
  font-size:20px;
  line-height:1.35}
.project-overview p {
  line-height:1.55}
.project-people {
  gap:5px}
.project-people span {
  line-height:1.4}
.project-tabs {
  position:sticky;
  top:70px;
  z-index:8;
  margin:10px -2px 13px;
  scrollbar-width:none}
.project-tabs::-webkit-scrollbar {
  display:none}
.project-tabs button {
  min-height:38px}

  .project-kpis {
  grid-template-columns:1fr 1fr}
.project-kpis div {
  padding:14px}
.project-kpis div:nth-child(2n) {
  border-right:0}
.project-kpis div:nth-child(-n+2) {
  border-bottom:1px solid var(--line)}

  .camp-toolbar {
  align-items:flex-start;
  gap:12px}
.camp-toolbar>div:last-child {
  flex-direction:column}
.camp-toolbar>div:last-child button {
  padding:9px 11px}

  .journey {
  overflow-x:auto;
  justify-content:flex-start;
  padding:5px 0}
.journey>div {
  min-width:68px}
.journey i {
  min-width:24px}

  .shot-head {
  display:block}
.shot-badge {
  display:inline-block;
  margin-top:10px}
.shot-summary {
  grid-template-columns:repeat(3,1fr);
  gap:8px}
.shot-summary div {
  border:0;
  background:rgba(255,255,255,.55);
  border-radius:8px;
  padding:10px 5px}
.shot-columns,.handoff-grid,.tracking-cards {
  grid-template-columns:1fr}
.shot-actions {
  display:grid;
  grid-template-columns:1fr 1fr}
.shot-actions button {
  padding:10px 8px}

  .summary-sections,.manager-inputs {
  grid-template-columns:1fr}
.risk-list article {
  grid-template-columns:34px 1fr}
.risk-list aside {
  grid-column:2;
  text-align:left}
.action-log article {
  grid-template-columns:58px 1fr}
.action-log article>em {
  grid-column:2;
  justify-self:start}

  .data-table-wrap {
  margin:0 -16px;
  padding:0 16px 8px;
  overscroll-behavior-inline:contain}
.data-table {
  min-width:760px}
.data-table th:first-child,.data-table td:first-child {
  position:sticky;
  left:0;
  background:#fff;
  z-index:1}
.data-table th:first-child {
  background:#f4f6f4}
.cohort-table {
  min-width:1050px}

  .base-matrix {
  margin:0 -16px;
  padding:0 16px}
.base-matrix>div {
  min-width:540px}

  .modal-card {
  top:5vh;
  border-radius:22px 22px 0 0;
  padding:20px 16px calc(20px + env(safe-area-inset-bottom))}
.modal-card header {
  position:sticky;
  top:-20px;
  background:#fff;
  z-index:2;
  padding-top:4px}
.modal-card h2 {
  font-size:21px}
.modal-card header p {
  line-height:1.5}
.form-section {
  padding:18px 0}
.field input,.field textarea,.field select {
  font-size:16px;
  min-height:46px}
.form-actions {
  position:sticky;
  bottom:calc(-20px - env(safe-area-inset-bottom));
  background:#fff;
  padding:12px 0 calc(12px + env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:1fr 1fr}
.form-actions button {
  min-height:46px}

  .trainee-drawer aside {
  top:5vh;
  border-radius:22px 22px 0 0;
  padding:20px 16px}
.drawer-status {
  grid-template-columns:1fr 1fr}
.profile-scores {
  grid-template-columns:1fr 1fr}

  .toast {
  bottom:calc(86px + env(safe-area-inset-bottom));
  max-width:calc(100% - 28px);
  text-align:center}

  .sidebar {
  z-index:90;
  width:min(84vw,320px);
  padding:18px 16px calc(18px + env(safe-area-inset-bottom));
  box-shadow:18px 0 48px rgba(25,52,48,.2)}
.sidebar .brand img {
  height:58px}
.sidebar nav {
  overflow-y:auto}
.sidebar-foot {
  margin-top:16px}

  .mobile-sidebar-scrim {
  display:block;
  position:fixed;
  inset:0;
  border:0;
  background:rgba(20,42,39,.38);
  z-index:85;
  opacity:0;
  visibility:hidden;
  transition:.2s}
.mobile-sidebar-scrim.show {
  opacity:1;
  visibility:visible}

  .mobile-bottom-nav {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  height:calc(64px + env(safe-area-inset-bottom));
  padding:5px 5px env(safe-area-inset-bottom);
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(31,67,61,.08);
  z-index:70;
  backdrop-filter:blur(14px)}

  .mobile-tab {
  border:0;
  background:transparent;
  color:#778783;
  border-radius:11px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-width:0}
.mobile-tab span {
  font-size:20px;
  line-height:1}
.mobile-tab b {
  font-size:10px;
  font-weight:650}
.mobile-tab.active {
  color:#23776e;
  background:#eaf5f2}
.mobile-tab.active span {
  transform:translateY(-1px)}

}

@media(max-width:380px) {
  
  .top-actions .role-preview {
  display:none}
.weekly-metric-groups {
  grid-template-columns:1fr}
.personal-copy>div,.ai-actions,.shot-actions {
  grid-template-columns:1fr}
.mobile-tab b {
  font-size:9px}
.project-nav {
  flex-basis:185px;
  min-width:185px}

}


/* P0 登录与真实账号管理 */
.auth-pending {
  overflow:hidden}
.auth-pending .app-shell {
  visibility:hidden}
.auth-ready .auth-screen {
  display:none}

.auth-screen {
  position:fixed;
  inset:0;
  z-index:300;
  display:grid;
  place-items:center;
  padding:24px;
  background:radial-gradient(circle at 78% 18%,#dff2ec 0,transparent 34%),linear-gradient(145deg,#f8fbfa,#edf5f2)}

.auth-card {
  width:min(440px,100%);
  background:#fff;
  border:1px solid #dce9e5;
  border-radius:24px;
  padding:34px;
  box-shadow:0 24px 70px rgba(32,73,66,.14)}

.auth-card>img {
  width:220px;
  max-height:82px;
  object-fit:contain;
  object-position:left center;
  margin-bottom:22px}
.auth-card h1 {
  font-size:25px;
  margin:7px 0 8px;
  color:#213c37}
.auth-card p {
  font-size:13px;
  color:var(--muted);
  margin-bottom:24px}
.auth-card form {
  display:grid;
  gap:15px}
.auth-card form>label {
  display:grid;
  gap:7px;
  font-size:12px;
  font-weight:700;
  color:#405b56}
.auth-card input {
  width:100%;
  border:1px solid #cededa;
  border-radius:11px;
  padding:12px 13px;
  outline:none}
.auth-card input:focus {
  border-color:#3d998b;
  box-shadow:0 0 0 3px #e4f3ef}
.auth-card .primary {
  min-height:45px;
  margin-top:2px}
.auth-card form>em {
  min-height:18px;
  color:#c64f40;
  font-size:12px;
  font-style:normal}
.auth-card>small {
  display:block;
  margin-top:20px;
  text-align:center;
  color:#8a9996;
  font-size:11px}

.check-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafcfb}
.check-row label {
  display:flex;
  align-items:center;
  gap:5px;
  background:#fff;
  border:1px solid #e0e9e6;
  border-radius:8px;
  padding:7px 9px;
  font-size:12px;
  font-weight:500}
.check-row input {
  width:auto;
  min-height:0}

.system-users {
  margin-bottom:16px}
.system-user-list {
  display:grid;
  gap:8px;
  margin-top:16px}
.system-user-list article {
  display:grid;
  grid-template-columns:38px minmax(160px,1fr) minmax(120px,auto) auto;
  align-items:center;
  gap:12px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fbfcfc}
.system-user-list .avatar {
  width:34px;
  height:34px}
.system-user-list strong,.system-user-list small {
  display:block}
.system-user-list small {
  color:var(--muted);
  font-size:11px;
  margin-top:3px}
.system-user-list em {
  font-size:12px;
  font-style:normal;
  color:#3c6f66}
.sidebar-foot #logoutBtn {
  width:auto;
  padding:5px 7px;
  font-size:10px;
  color:#687c78}


/* 内测反馈 */
.feedback-heading {
  align-items:flex-end}
.feedback-guide {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  align-items:center;
  gap:15px;
  background:linear-gradient(115deg,#eaf5f2,#f8f3e6);
  border:1px solid #dfeae6;
  border-radius:18px;
  padding:20px 24px;
  margin-bottom:16px}
.feedback-guide>div {
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:11px;
  align-items:center}
.feedback-guide>div>span {
  grid-row:1/3;
  width:34px;
  height:34px;
  border-radius:11px;
  background:#278b7e;
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:800}
.feedback-guide strong {
  font-size:13px}
.feedback-guide p {
  font-size:10px;
  color:var(--muted);
  margin:4px 0 0}
.feedback-guide>i {
  font-style:normal;
  color:#87aaa3}
.feedback-layout {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);
  gap:16px;
  align-items:start}
.feedback-form .form-section {
  padding-bottom:18px}
.feedback-form textarea {
  min-height:105px}
.feedback-privacy {
  background:#f2f7f5;
  border-left:3px solid #55a193;
  border-radius:8px;
  padding:12px 14px;
  color:#60736f;
  font-size:11px;
  line-height:1.6;
  margin-top:18px}
.feedback-status-card {
  margin-bottom:16px}
.feedback-status-card .panel-head>b {
  font-size:24px;
  color:#278b7e}
.feedback-records {
  display:grid;
  gap:10px;
  margin-top:16px}
.feedback-records>article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  background:#fbfcfb}
.feedback-records h3 {
  font-size:13px;
  margin:5px 0}
.feedback-records p {
  font-size:11px;
  color:var(--muted);
  line-height:1.55;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden}
.feedback-records footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:11px}
.feedback-records time {
  font-size:9px;
  color:#8b9995}
.feedback-kind {
  font-size:9px;
  color:#278b7e;
  font-weight:750}
.feedback-state {
  font-size:9px;
  font-style:normal;
  border-radius:20px;
  padding:4px 8px;
  background:#edf1ef;
  color:#61736f}
.feedback-state.new {
  background:#fff0cf;
  color:#9a690d}
.feedback-state.reviewing,.feedback-state.planned {
  background:#dfeef5;
  color:#397184}
.feedback-state.fixed {
  background:#dff1ea;
  color:#217360}
.feedback-records article>aside {
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--line);
  font-size:10px;
  line-height:1.5;
  color:#46655f}
.empty-feedback {
  font-size:11px;
  color:var(--muted);
  text-align:center;
  padding:24px 0}
.feedback-tips h2 {
  font-size:16px;
  margin:0 0 14px}
.feedback-tips ol {
  margin:0;
  padding-left:21px}
.feedback-tips li {
  font-size:11px;
  line-height:1.7;
  color:#62736f;
  margin:7px 0}
.owner-feedback {
  margin-top:16px}
.feedback-summary {
  display:flex;
  gap:20px}
.feedback-summary span {
  font-size:10px;
  color:var(--muted);
  text-align:center}
.feedback-summary b {
  display:block;
  font-size:20px;
  color:var(--ink)}
.feedback-table td {
  vertical-align:middle}
.feedback-table td b,.feedback-table td small {
  display:block}
.feedback-table td small {
  font-size:9px;
  color:var(--muted);
  margin-top:4px;
  max-width:320px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis}
.feedback-urgency {
  font-size:9px;
  font-style:normal;
  border-radius:6px;
  padding:4px 7px;
  background:#edf1ef;
  color:#61736f}
.feedback-urgency.blocking {
  background:#fde4de;
  color:#d65d47}
.feedback-urgency.high {
  background:#fff0ca;
  color:#a66c00}
.feedback-status-select {
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  padding:6px 8px;
  font-size:10px;
  color:var(--ink)}


.feedback-reply-btn {
  display:block;
  margin-top:6px;
  border:0;
  background:transparent;
  color:#23776e;
  font-size:10px;
  padding:2px 0;
  cursor:pointer}
.owner-note-preview {
  color:#2f776c!important;
  white-space:normal!important;
  margin-top:6px!important;
  line-height:1.45}
.feedback-update-alert {
  width:100%;
  margin:14px 0 0;
  border:1px solid #cfe5dc;
  background:#f1faf6;
  border-radius:15px;
  padding:14px 18px;
  display:grid;
  grid-template-columns:36px 1fr auto;
  align-items:center;
  gap:12px;
  text-align:left;
  color:var(--ink);
  cursor:pointer}
.feedback-update-alert>span {
  width:34px;
  height:34px;
  border-radius:50%;
  background:#278b7e;
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:800}
.feedback-update-alert b {
  font-size:13px}
.feedback-update-alert p {
  font-size:10px;
  color:var(--muted);
  line-height:1.5;
  margin:4px 0 0}
.feedback-update-alert em {
  font-style:normal;
  font-size:11px;
  color:#23776e;
  font-weight:700}


@media(max-width:820px) {
  .feedback-guide {
  grid-template-columns:1fr;
  padding:16px}
.feedback-guide>i {
  display:none}
.feedback-layout {
  grid-template-columns:1fr}
.feedback-form.panel {
  padding:18px}
.feedback-heading {
  align-items:flex-start}
.feedback-heading>div:last-child {
  display:none}
.feedback-summary {
  gap:10px}
.owner-feedback {
  padding:16px}
.feedback-table {
  min-width:760px}
.feedback-update-alert {
  grid-template-columns:34px 1fr}
.feedback-update-alert em {
  display:none}}


/* 真实报告与多工作项 */
.manager-report-alert {
  width:100%;
  margin:14px 0 0;
  border:1px solid #d9e9e4;
  background:#fff;
  border-radius:15px;
  padding:14px 18px;
  display:grid;
  grid-template-columns:36px 1fr auto;
  align-items:center;
  gap:12px;
  text-align:left;
  color:var(--ink);
  cursor:pointer;
  box-shadow:0 5px 18px rgba(28,71,64,.05)}
.manager-report-alert>span {
  width:34px;
  height:34px;
  border-radius:10px;
  background:#dff1ea;
  color:#217360;
  display:grid;
  place-items:center;
  font-weight:800}
.manager-report-alert b {
  font-size:13px}
.manager-report-alert p {
  font-size:10px;
  color:var(--muted);
  margin:4px 0 0}
.manager-report-alert em {
  font-style:normal;
  font-size:11px;
  color:#278b7e;
  font-weight:700}
.notify[data-count]:before {
  content:attr(data-count);
  position:absolute;
  right:-5px;
  top:-6px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:9px;
  background:#e68168;
  color:#fff;
  font-size:9px;
  display:grid;
  place-items:center}
.api-report-list:empty {
  display:none}
.real-report-row {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto auto;
  align-items:center;
  gap:15px;
  padding:18px 24px;
  border-bottom:1px solid var(--line)}
.real-report-row:last-child {
  border-bottom:0}
.real-report-row time {
  font-size:10px;
  color:#899591;
  white-space:nowrap}
.real-report-row>button {
  border:0;
  background:none;
  color:#315f57;
  cursor:pointer;
  white-space:nowrap}
.empty-real-reports {
  padding:28px 24px;
  text-align:center;
  color:var(--muted);
  display:grid;
  gap:5px}
.empty-real-reports b {
  font-size:13px;
  color:var(--ink)}
.empty-real-reports span {
  font-size:10px}
.real-monthly-reports {
  margin-bottom:16px}
.work-item-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:15px}
.work-item-head h3 {
  margin:0}
.remove-work {
  border:0;
  background:#fff1ed;
  color:#c95e4a;
  border-radius:8px;
  padding:6px 9px;
  font-size:10px;
  cursor:pointer}
.add-work {
  margin:14px 0 0;
  border:1px dashed #77a399;
  background:#f4faf8;
  color:#23776e;
  border-radius:10px;
  padding:11px 16px;
  font-weight:700;
  cursor:pointer}
.daily-work-item {
  background:#fcfdfc;
  border:1px solid #edf1ef;
  border-radius:13px;
  padding:18px;
  margin-top:14px}
.daily-work-item+.daily-work-item {
  margin-top:10px}


.report-detail {
  display:grid;
  gap:14px}
.report-detail>p,.report-detail-work p {
  display:grid;
  grid-template-columns:130px 1fr;
  gap:14px;
  padding:10px 0;
  margin:0;
  border-bottom:1px solid var(--line)}
.report-detail p b {
  color:var(--ink);
  font-size:13px}
.report-detail p span {
  white-space:pre-wrap;
  color:var(--muted);
  line-height:1.65}
.report-detail-work {
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fbfdfc}
.report-detail-work h4 {
  margin:0 0 6px;
  color:var(--teal)}


@media(max-width:820px) {
  .manager-report-alert {
  grid-template-columns:34px 1fr}
.manager-report-alert em {
  display:none}
.real-report-row {
  grid-template-columns:38px minmax(0,1fr);
  padding:16px}
.real-report-row time,.real-report-row>button {
  grid-column:2}
.real-report-row>button {
  text-align:left;
  padding:0}
.daily-work-item {
  padding:14px}
.work-item-head {
  align-items:flex-start}
.report-detail>p,.report-detail-work p {
  grid-template-columns:1fr;
  gap:5px}}

@media(max-width:760px) {
  .auth-screen {
  padding:14px}
.auth-card {
  padding:26px 20px;
  border-radius:20px}
.auth-card>img {
  width:185px}
.auth-card h1 {
  font-size:22px}
.system-user-list article {
  grid-template-columns:36px 1fr}
.system-user-list article>em,.system-user-list article>b {
  grid-column:2;
  justify-self:start}}


/* 内测稳定版空状态 */
.stable-empty {
  margin:18px 0;
  padding:52px 24px;
  border:1px dashed #cbded9;
  border-radius:18px;
  background:#fbfdfc;
  text-align:center;
  color:var(--muted)}
.stable-empty>span {
  display:inline-block;
  padding:5px 9px;
  border-radius:20px;
  background:#edf4f2;
  color:#5c746f;
  font-size:10px}
.stable-empty h2 {
  margin:12px 0 7px;
  font-size:18px;
  color:var(--ink)}
.stable-empty p {
  font-size:12px;
  line-height:1.65;
  margin:0 auto 16px;
  max-width:560px}
.personal-output-list {
  display:grid;
  gap:10px;
  margin:18px 0;
  text-align:left}
.personal-output-list p {
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink)}
.personal-output-list b {
  display:grid;
  place-items:center;
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--mint);
  color:var(--green)}
.stable-project-head {
  margin-bottom:0}
.stability-mode [hidden] {
  display:none!important}

@media(max-width:760px) {
  .stable-empty {
  padding:36px 18px}
.stable-empty h2 {
  font-size:16px}}


/* 真实消息提醒 */
.notify:not(.has-unread):after {
  display:none}
.notification-panel {
  position:fixed;
  right:30px;
  top:70px;
  width:min(390px,calc(100vw - 28px));
  max-height:520px;
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 18px 50px rgba(22,56,51,.18);
  z-index:90}
.notification-panel>header {
  position:sticky;
  top:0;
  background:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  z-index:1}
.notification-panel header b,.notification-panel header span {
  display:block}
.notification-panel header b {
  font-size:14px}
.notification-panel header span {
  font-size:10px;
  color:var(--muted);
  margin-top:3px}
.notification-panel header button {
  border:0;
  background:#f1f4f2;
  border-radius:50%;
  width:28px;
  height:28px;
  cursor:pointer}
.notification-item {
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:14px 17px;
  display:grid;
  grid-template-columns:32px 1fr;
  gap:11px;
  text-align:left;
  cursor:pointer}
.notification-item:hover {
  background:#f7faf8}
.notification-item.unread {
  background:#f1f9f6}
.notification-item>span {
  width:30px;
  height:30px;
  border-radius:9px;
  background:#e1f0eb;
  color:#217360;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:800}
.notification-item b {
  font-size:12px}
.notification-item p {
  font-size:10px;
  line-height:1.5;
  color:var(--muted);
  margin:5px 0}
.notification-item time {
  font-size:9px;
  color:#98a39f}
.empty-notifications {
  padding:34px 18px;
  text-align:center;
  font-size:11px;
  color:var(--muted)}

@media(max-width:760px) {
  .top-actions .notify {
  display:block}
.notification-panel {
  right:14px;
  top:66px;
  max-height:65vh}}


/* 稳定版报告、弹层与模拟视角 */
#daily .report-row[data-report-person],#weekly .week-row[data-report-person] {
  display:none!important}

body.system-modal-open,body.notification-open,body.feedback-modal-open {
  overflow:hidden}

.modal.open {
  z-index:210}
.modal-card header .close,.notification-panel header button {
  position:relative;
  z-index:3;
  flex:0 0 auto;
  cursor:pointer;
  touch-action:manipulation}

.daily-week-notice {
  display:flex;
  gap:9px;
  align-items:center;
  margin:14px 0 0;
  padding:12px 14px;
  border:1px solid #cfe5dc;
  border-radius:10px;
  background:#f1f9f6;
  color:#315f57;
  font-size:11px}
.daily-week-notice b {
  white-space:nowrap}
.daily-week-notice.gap-day {
  background:#fff7e6;
  border-color:#ecd9ae;
  color:#805f1c}
.daily-week-notice span {
  line-height:1.55}

.real-report-row {
  cursor:pointer}
.real-report-row:focus-visible {
  outline:3px solid #b9ded6;
  outline-offset:-3px}
.real-report-row .report-main small {
  line-height:1.6}
.real-report-row time {
  max-width:112px;
  line-height:1.45;
  text-align:right}

.simulation-banner {
  position:sticky;
  top:80px;
  z-index:9;
  margin:0;
  padding:11px 36px;
  background:#fff4d8;
  border-bottom:1px solid #ead6a5;
  color:#765719}
.simulation-banner b,.simulation-banner span {
  display:inline}
.simulation-banner b {
  font-size:12px}
.simulation-banner span {
  font-size:10px;
  margin-left:12px}

body.simulation-readonly [data-open],body.simulation-readonly [data-owner-action],body.simulation-readonly #feedbackForm,body.simulation-readonly .feedback-status-select,body.simulation-readonly .feedback-reply-btn,body.simulation-readonly #importRosterBtn,body.simulation-readonly #confirmImportBtn,body.simulation-readonly #createPeriodBtn,body.simulation-readonly #editPeriodBtn,body.simulation-readonly #addProjectRecordBtn,body.simulation-readonly [data-record-id],body.simulation-readonly #periodForm,body.simulation-readonly #projectRecordForm,body.simulation-readonly #projectCommentForm {
  opacity:.5;
  cursor:not-allowed!important}

.notification-scrim {
  position:fixed;
  inset:0;
  z-index:89;
  border:0;
  background:rgba(13,39,35,.22);
  padding:0}
.notification-panel {
  z-index:220}
.notification-panel>header {
  z-index:2}
.notification-panel header button {
  width:34px;
  height:34px;
  font-size:18px}

.feedback-reply-modal {
  position:fixed;
  inset:0;
  z-index:260;
  display:grid;
  place-items:center;
  padding:20px}
.feedback-reply-backdrop {
  position:absolute;
  inset:0;
  border:0;
  background:rgba(10,34,31,.5);
  backdrop-filter:blur(3px)}
.feedback-reply-card {
  position:relative;
  width:min(560px,100%);
  max-height:calc(100vh - 40px);
  overflow:auto;
  background:#fff;
  border-radius:18px;
  padding:24px;
  box-shadow:0 24px 70px rgba(10,34,31,.22)}
.feedback-reply-card header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:16px}
.feedback-reply-card h2 {
  font-size:19px;
  margin:5px 0}
.feedback-reply-card header p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.feedback-reply-card>label {
  display:grid;
  gap:8px;
  padding-top:20px}
.feedback-reply-card>label span {
  font-size:11px;
  font-weight:700}
.feedback-reply-card textarea {
  min-height:150px;
  border:1px solid #dfe5e1;
  border-radius:10px;
  padding:12px;
  font:inherit;
  font-size:13px;
  line-height:1.65;
  resize:vertical}
.feedback-reply-card textarea:focus {
  outline:0;
  border-color:#77a399;
  box-shadow:0 0 0 3px #e6f0ed}

@media(max-width:760px) {
  .simulation-banner {
  top:70px;
  padding:10px 16px}
.simulation-banner b,.simulation-banner span {
  display:block}
.simulation-banner span {
  margin:4px 0 0}
.daily-week-notice {
  align-items:flex-start;
  flex-direction:column}
.feedback-reply-modal {
  padding:12px}
.feedback-reply-card {
  padding:20px 16px}
.real-report-row time {
  max-width:none;
  text-align:left}}


/* 真实项目报告：所有数值与结论均由当前期次/专项的服务器记录生成。 */
.group-post-title {
  font-size:18px;
  font-weight:800;
  color:#243d38;
  margin:16px 0 12px}
.group-post-section {
  padding:11px 0;
  border-top:1px dashed #dfd2bd}
.group-post-section:first-of-type {
  border-top:0}
.group-post-section h4 {
  font-size:13px;
  color:#2b5f55;
  margin:0 0 7px}
.group-post-section p {
  font-size:12px;
  line-height:1.75;
  white-space:pre-line}
.group-post-meta {
  font-size:10px;
  color:#8a7964;
  margin-top:12px}
.real-project-report {
  margin-top:18px}
.real-report-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:16px 0}
.real-report-metrics article {
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  background:#f7faf8}
.real-report-metrics span,.real-report-metrics strong {
  display:block}
.real-report-metrics span {
  font-size:10px;
  color:var(--muted)}
.real-report-metrics strong {
  font-size:23px;
  margin-top:7px}
.real-report-sections {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px}
.real-report-sections section {
  border:1px solid var(--line);
  border-radius:12px;
  padding:15px}
.real-report-sections h3 {
  font-size:13px;
  margin:0 0 8px}
.real-report-sections p {
  font-size:11px;
  line-height:1.75;
  color:#5d6d69;
  white-space:pre-line;
  margin:0}
.real-report-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:15px}
.report-source-note {
  font-size:10px;
  color:var(--muted);
  margin:10px 0 0}
.real-report-empty {
  padding:34px 20px;
  text-align:center;
  color:var(--muted)}

@media(max-width:760px) {
  .real-report-metrics {
  grid-template-columns:repeat(2,1fr)}
.real-report-sections {
  grid-template-columns:1fr}
.real-report-actions {
  display:grid;
  grid-template-columns:1fr 1fr}
.group-post-section p {
  font-size:11px}}


/* Keep restored dashboard/project layouts inside the mobile viewport. Wide data
   tables scroll inside their own wrapper instead of widening the document. */
@media(max-width:760px) {
  
  .dashboard-grid,.dashboard-grid.portfolio-detail {
  grid-template-columns:minmax(0,1fr)!important}

  .dashboard-grid>*,.project-layout>*,.project-main,.project-view {
  min-width:0;
  max-width:100%}

  #dashboard .data-table-wrap,.project-view .data-table-wrap {
  width:100%;
  max-width:100%;
  overflow-x:auto}

}


/* Simulation is editable; errors must stay above drawers and project modals. */
body.simulation-active .simulation-banner {
  background:#eaf7f3;
  border-color:#c9e5dd;
  color:#245f56}

.toast {
  z-index:420;
  box-shadow:0 12px 34px rgba(10,34,31,.28)}


/* My Projects: fixed project navigation + one selected base period + project-specific steps. */
#projects>.project-rule,#projects>.project-filter-bar,#projects>#projectSummaryCards,#projects>.panel:has(#projectPeriodList) {
  display:none}

.period-context {
  margin:14px 0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 20px;
  box-shadow:0 4px 16px rgba(36,73,68,.04)}

.period-context-head {
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center}
.period-context-head>div:last-child {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end}
.period-context-head span {
  font-size:9px;
  letter-spacing:1px;
  color:#278b7e;
  font-weight:800}
.period-context-head h3 {
  font-size:17px;
  margin:5px 0}
.period-context-head p {
  font-size:10px;
  color:var(--muted);
  margin:0}
.period-chip-list {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:14px 0 4px}
.period-chip {
  flex:0 0 auto;
  min-width:160px;
  text-align:left;
  background:#f7faf8;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 12px;
  cursor:pointer}
.period-chip.active {
  border-color:#58a99d;
  background:#eaf6f2;
  box-shadow:0 0 0 2px rgba(39,139,126,.08)}
.period-chip span,.period-chip small {
  display:block}
.period-chip span {
  font-size:11px;
  font-weight:750}
.period-chip small {
  font-size:9px;
  color:var(--muted);
  margin-top:4px}
.period-empty {
  font-size:10px;
  color:var(--muted);
  padding:10px}
.period-history {
  margin-top:10px;
  border-top:1px solid var(--line);
  padding-top:10px}
.period-history summary {
  font-size:10px;
  color:var(--muted);
  cursor:pointer}
.period-history>div {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-top:10px}
.period-activity {
  border-top:1px solid var(--line);
  margin-top:14px;
  padding-top:14px}
.period-activity-head {
  display:flex;
  align-items:center;
  justify-content:space-between}
.period-activity-head h3 {
  font-size:12px;
  margin:0}
.period-activity-head span {
  font-size:9px;
  color:var(--muted)}
.period-activity-list .project-record-row {
  width:100%}

@media(max-width:760px) {
  .period-context {
  padding:15px 14px}
.period-context-head {
  align-items:flex-start;
  flex-direction:column}
.period-context-head>div:last-child {
  width:100%;
  justify-content:flex-start}
.period-context-head button {
  flex:1}
.period-activity-head {
  align-items:flex-start;
  flex-direction:column;
  gap:4px}}

.import-guide {
  margin:16px 0;
  background:#eef7f4;
  border:1px solid #d8ebe5;
  border-radius:10px;
  padding:12px 14px;
  font-size:10px;
  line-height:1.65;
  color:#4d6963}
.import-batches {
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  margin:12px 0;
  font-size:10px}
.import-batches span {
  background:#e5f2ee;
  color:#2d7267;
  padding:5px 8px;
  border-radius:6px}
.import-conflicts {
  margin-top:14px;
  border-top:1px solid var(--line);
  padding-top:12px}
.import-conflicts h3 {
  font-size:11px}
.import-conflicts label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line)}
.import-conflicts label span,.import-conflicts label small {
  display:block}
.import-conflicts label b {
  font-size:11px}
.import-conflicts label small {
  font-size:9px;
  color:var(--muted);
  margin-top:3px}
.import-conflicts select {
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px;
  font-size:10px}
.system-draft-section {
  background:#eef7f4;
  border:1px solid #d5e9e3;
  border-radius:12px;
  margin:18px 0;
  padding:16px!important}
.system-draft-section>p {
  font-size:10px;
  color:var(--muted)}
.system-draft-section article {
  display:grid;
  gap:4px;
  background:#fff;
  border-radius:9px;
  padding:11px 12px;
  margin-top:8px}
.system-draft-section article b {
  font-size:9px;
  color:#278b7e}
.system-draft-section article span {
  font-size:11px;
  font-weight:700}
.system-draft-section article small {
  font-size:9px;
  color:var(--muted);
  line-height:1.5}
.system-draft-section.empty {
  background:#f8faf9}

.period-activity-list .project-record-row {
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto auto auto;
  align-items:center;
  gap:10px;
  padding:12px 0;
  border-bottom:1px solid var(--line)}
.period-activity-list .project-record-row>span {
  font-size:9px;
  color:#278b7e}
.period-activity-list .project-record-row b {
  font-size:11px}
.period-activity-list .project-record-row p {
  font-size:9px;
  color:var(--muted);
  margin:4px 0 0}
.record-actions {
  display:flex;
  gap:5px}
.record-actions button {
  border:0;
  background:#eef5f2;
  color:#2b6f65;
  border-radius:7px;
  padding:7px 9px;
  font-size:9px;
  cursor:pointer}
.record-actions .danger-link {
  background:#fff1ed;
  color:#bd5a45}

@media(max-width:760px) {
  .period-activity-list .project-record-row {
  grid-template-columns:48px minmax(0,1fr) auto}
.period-activity-list .project-record-row>small {
  display:none}
.record-actions {
  grid-column:2/-1;
  justify-content:flex-start}}

.table-edit-link {
  display:block;
  margin-top:6px;
  border:0;
  background:#eaf5f1;
  color:#267468;
  border-radius:6px;
  padding:5px 8px;
  font-size:9px;
  cursor:pointer}
.table-edit-link:hover {
  background:#dceee8}

.period-context-head .danger-link {
  border-color:#f0d5cd;
  color:#b95945;
  background:#fff8f5}

.period-group-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:14px}
.period-group-label b {
  font-size:12px}
.period-group-label span {
  font-size:10px;
  color:var(--muted)}

.period-history>div {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-top:10px}
.period-history .period-empty {
  padding:8px 0}

.form-actions .danger-link {
  margin-right:auto;
  border-color:#f0d5cd;
  color:#b95945;
  background:#fff8f5}


/* 2026-07-16：团队办公舒适字号、统一标题与标准顶栏图标。 */
:root {
  --text-body:14px;
  --text-table:13px;
  --text-label:12px;
  --text-note:11px}

body {
  font-size:var(--text-body);
  line-height:1.65}

button,input,select,textarea {
  font-family:inherit}

.page-heading>div:only-child {
  display:block;
  width:auto}

.page-heading p,.hero p {
  font-size:14px;
  line-height:1.7}

.eyebrow {
  font-size:11px}

.crumb {
  font-size:13px}
.today {
  font-size:14px}

.icon-btn {
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#355f59;
  cursor:pointer;
  transition:border-color .18s,background .18s,color .18s,transform .18s}

.icon-btn:hover {
  background:#f1f8f5;
  border-color:#b9d8d0;
  color:#23776e}
.icon-btn:active {
  transform:translateY(1px)}
.icon-btn:focus-visible {
  outline:3px solid #c9e6df;
  outline-offset:2px}

.top-icon-svg {
  width:22px;
  height:22px;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none}

.notify:after {
  right:7px;
  top:6px}
.notify[data-count]:before {
  right:-7px;
  top:-7px;
  min-width:21px;
  height:21px;
  padding:0 5px;
  border-radius:11px;
  font-size:10px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  border:2px solid #fff;
  box-sizing:border-box;
  z-index:2}
.notify.has-unread:after {
  display:none}

/* 761–1100px 仍需保留六类固定项目入口，改为横向滑动而不是隐藏。 */
@media(max-width:1100px) {
  
  .project-layout {
  display:block}

  .project-sidebar {
  display:flex!important;
  gap:8px;
  overflow-x:auto;
  padding:7px 4px 12px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  scroll-snap-type:x proximity}

  .project-sidebar::-webkit-scrollbar {
  display:none}

  .project-sidebar .panel-head,.project-sidebar .project-other {
  display:none}

  .project-nav {
  flex:0 0 205px;
  min-width:205px;
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 3px 10px rgba(35,74,69,.04);
  scroll-snap-align:start}

  .project-nav.active {
  border-color:#85bdb5;
  background:#e8f4f1}

}

.primary,.secondary,.filter,.text-btn {
  font-size:13px}
.primary.small {
  font-size:13px}

.nav-item {
  font-size:15px}
.nav-label {
  font-size:11px}
.sidebar-foot strong {
  font-size:14px}
.sidebar-foot small {
  font-size:11px}

.section-title h2,.panel h2 {
  font-size:18px}
.section-title p,.panel-head p {
  font-size:13px;
  line-height:1.6}

body .page :where(p,li) {
  font-size:13px;
  line-height:1.7}

body .page .page-heading p,body .page .hero p {
  font-size:14px}

body .page :where(small,time) {
  font-size:var(--text-note);
  line-height:1.55}

body .page :where(label) {
  font-size:13px}

body .page :where(input,select,textarea) {
  font-size:14px}

body .page :where(button) {
  font-size:13px}

.dashboard-grid {
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}

.dashboard-grid>*,.data-table-wrap {
  min-width:0;
  max-width:100%}

.data-table-wrap {
  overflow-x:auto}

.field label {
  font-size:13px}
.field input,.field textarea,.field select {
  font-size:14px;
  line-height:1.55;
  min-height:44px}
.field textarea {
  min-height:96px}

.data-table th {
  font-size:12px;
  padding:12px 11px}
.data-table td {
  font-size:var(--text-table);
  padding:14px 11px;
  line-height:1.6}
.data-table td small {
  font-size:var(--text-note)}

.tag,.source-chip,.feedback-state,.feedback-kind,.feedback-urgency,.priority,.labels span {
  font-size:11px!important}

.task-card span,.task-card p,.metrics span,.metrics em,.stat-strip span,.month-cards span,.board-metrics span,.board-metrics small {
  font-size:12px}
.task-card h3 {
  font-size:15px}
.task-card p {
  line-height:1.6}

.report-main h3,.week-row h3,.issue-item h4,.insight h4,.project-progress h3,.asset-summary h3 {
  font-size:14px}
.report-main span,.report-main p,.week-row p,.issue-item p,.insight p,.project-progress p,.asset-summary p {
  font-size:13px}
.report-main small {
  font-size:11px}

.role-scope p,.board-scope p,.page-scope-note p {
  font-size:12px}
.stable-empty>span {
  font-size:11px}
.stable-empty p {
  font-size:13px}

.project-view p,.project-view li,.project-overview p,.period-context p {
  font-size:13px;
  line-height:1.65}
.project-view small,.project-overview small,.period-context small {
  font-size:11px}
.project-view .tag {
  font-size:11px!important}

.project-nav {
  font-size:14px}
.project-nav span,.period-chip span {
  font-size:13px}
.project-nav small,.period-chip small,.period-history summary,.period-empty {
  font-size:11px}

.period-context-head span,.period-activity-head span,.period-activity-list .project-record-row>span {
  font-size:11px}
.period-context-head p,.period-activity-list .project-record-row p {
  font-size:12px}
.period-activity-list .project-record-row b {
  font-size:13px}
.record-actions button,.table-edit-link {
  font-size:11px}

.import-guide,.import-batches,.mapping-list,.empty-preview {
  font-size:12px}
.import-conflicts h3,.import-conflicts label b {
  font-size:13px}
.import-conflicts label small {
  font-size:11px}
.import-conflicts select {
  font-size:12px}

.feedback-records h3 {
  font-size:14px}
.feedback-records p,.feedback-tips li,.feedback-privacy {
  font-size:12px}
.feedback-records time {
  font-size:11px}
.feedback-summary span {
  font-size:11px}
.feedback-reply-btn,.feedback-status-select {
  font-size:12px}

.notification-panel header b {
  font-size:15px}
.notification-panel header span {
  font-size:12px}
.notification-item b {
  font-size:13px}
.notification-item p {
  font-size:12px}
.notification-item time,.empty-notifications {
  font-size:11px}

.modal-card header p {
  font-size:13px;
  line-height:1.65}
.form-section h3 {
  font-size:15px}
.daily-week-notice {
  font-size:13px}
.system-draft-section>p,.system-draft-section article small {
  font-size:12px}
.system-draft-section article b {
  font-size:11px}
.system-draft-section article span {
  font-size:13px}

.static-file-warning {
  margin:0;
  padding:13px 34px;
  background:#fff3da;
  border-bottom:1px solid #ead5a7;
  color:#765718;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:13px;
  line-height:1.55}
.static-file-warning b {
  font-size:14px}
.static-file-warning a {
  flex:0 0 auto;
  background:#278b7e;
  color:#fff;
  text-decoration:none;
  border-radius:9px;
  padding:8px 13px;
  font-weight:700}
.static-file-warning a:focus-visible {
  outline:3px solid #b9ded6;
  outline-offset:2px}

@media(max-width:760px) {
  
  .page-heading>div:only-child {
  width:auto}

  body .page .page-heading p,body .page .hero p {
  font-size:13px}

  .top-actions .icon-btn {
  width:40px;
  height:40px}

  .top-icon-svg {
  width:21px;
  height:21px}

  .field input,.field textarea,.field select,body .page :where(input,select,textarea) {
  font-size:16px}

  .data-table th {
  font-size:12px}
.data-table td {
  font-size:13px}

  .static-file-warning {
  padding:12px 16px;
  align-items:flex-start;
  flex-direction:column}
.static-file-warning a {
  width:100%;
  text-align:center}

}


/* 工作台团队使命：位于内容区首位，不占用日期顶栏。 */
.team-mission-banner {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:70px;
  margin:0 0 14px;
  padding:15px 20px 15px 22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  background:linear-gradient(112deg,#133f3a 0%,#1d665b 70%,#29796d 100%);
  box-shadow:0 10px 28px rgba(22,76,69,.15);
  color:#fff}

.team-mission-banner:before {
  content:"";
  position:absolute;
  z-index:-1;
  width:180px;
  height:180px;
  right:42px;
  top:-116px;
  border-radius:50%;
  background:rgba(247,165,142,.24)}

.team-mission-banner:after {
  content:"";
  position:absolute;
  z-index:-1;
  width:90px;
  height:90px;
  right:8px;
  bottom:-67px;
  border-radius:50%;
  background:rgba(217,238,231,.18)}

.team-mission-kicker {
  flex:0 0 auto;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.1);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  white-space:nowrap}

.team-mission-banner strong {
  min-width:0;
  flex:1;
  font-size:20px;
  line-height:1.45;
  letter-spacing:.02em}

.team-mission-seal {
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:50%;
  background:#f7a58e;
  color:#173f39;
  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
  box-shadow:0 5px 14px rgba(10,42,37,.16)}

.nav-guide-link {
  text-decoration:none}

@media(max-width:760px) {
  
  .team-mission-banner {
  align-items:flex-start;
  gap:10px;
  min-height:0;
  padding:14px 15px;
  border-radius:14px}

  .team-mission-kicker {
  padding:4px 8px;
  font-size:10px}

  .team-mission-banner strong {
  font-size:16px;
  line-height:1.55}

  .team-mission-seal {
  display:none}

  .team-mission-banner:before {
  right:-30px}

}

