:root {
  --navy: #0c1830;
  --navy-2: #142544;
  --ink: #172033;
  --muted: #667085;
  --line: #e3e8ef;
  --page: #f4f7fb;
  --white: #fff;
  --blue: #335eea;
  --blue-soft: #edf2ff;
  --green: #198754;
  --green-soft: #eaf8f1;
  --amber: #b76e00;
  --amber-soft: #fff6df;
  --red: #c53b43;
  --red-soft: #fff0f1;
  --purple: #7856c8;
  --shadow: 0 10px 30px rgba(21, 34, 56, .08);
  --radius: 13px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 14px;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
.hidden { display: none !important; }

.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 40;
  display: flex;
  width: 250px;
  flex-direction: column;
  color: #dce6f7;
  background: linear-gradient(180deg, var(--navy), #0b152a 74%);
  box-shadow: 6px 0 24px rgba(6, 14, 29, .12);
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  height: 72px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.brand-mark {
  display: grid;
  width: 37px;
  height: 37px;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, #6385ff, #3155db);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .07em;
}
.brand strong, .brand span { display: block; }
.brand strong { color: #fff; font-size: 14px; }
.brand span { margin-top: 3px; color: #8293af; font-size: 11px; }
.brand.aos-brand {
  height: 82px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
}
.aos-brand img {
  display: block;
  width: 174px;
  height: 34px;
  padding: 5px 8px;
  border-radius: 7px;
  background: #fff;
  object-fit: contain;
}
.brand.aos-brand span {
  margin: 0 0 0 3px;
  color: #8596b2;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.nav-list { flex: 1; padding: 14px 10px; overflow-y: auto; }
.nav-item {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  width: 100%;
  min-height: 42px;
  margin-bottom: 3px;
  padding: 0 11px;
  border: 0;
  border-radius: 8px;
  color: #9fadc3;
  background: transparent;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
}
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: rgba(74, 110, 237, .23); }
.nav-icon { color: #7387aa; font-size: 17px; }
.nav-item.active .nav-icon { color: #90a8ff; }
.nav-count {
  min-width: 26px;
  padding: 2px 6px;
  border-radius: 9px;
  color: #a9b7cb;
  background: rgba(255,255,255,.07);
  font-size: 10px;
  text-align: center;
}
.nav-count.alert { color: #ffd5d8; background: rgba(218, 74, 86, .22); }
.sidebar-note {
  display: flex;
  gap: 10px;
  margin: 10px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
}
.sidebar-note strong, .sidebar-note span { display: block; }
.sidebar-note strong { color: #dce6f7; font-size: 11px; }
.sidebar-note span { margin-top: 3px; color: #7587a4; font-size: 9px; line-height: 1.45; }
.status-dot { flex: 0 0 7px; width: 7px; height: 7px; margin-top: 3px; border-radius: 50%; background: #43c48b; box-shadow: 0 0 0 4px rgba(67,196,139,.12); }
.sidebar-user {
  display: grid;
  grid-template-columns: 34px 1fr 22px;
  align-items: center;
  gap: 9px;
  min-height: 62px;
  padding: 10px 14px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.sidebar-user strong, .sidebar-user span { display: block; }
.sidebar-user strong { color: #e8eef9; font-size: 11px; }
.sidebar-user span { margin-top: 3px; color: #7487a6; font-size: 9px; }
.sidebar-user button { border: 0; color: #7183a2; background: transparent; }
.avatar {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #526caa;
  font-size: 10px;
  font-weight: 700;
}
.avatar.small { width: 30px; height: 30px; background: #162a4b; }

.main-column { min-height: 100vh; margin-left: 250px; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  padding: 0 28px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
}
.global-search {
  display: flex;
  align-items: center;
  gap: 9px;
  width: min(520px, 55vw);
  height: 36px;
  padding: 0 11px;
  border: 1px solid #d8dee8;
  border-radius: 8px;
  background: #f9fafc;
  color: #8490a2;
}
.global-search:focus-within { border-color: #8ca4f3; box-shadow: 0 0 0 3px rgba(51,94,234,.08); }
.global-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 12px; }
kbd { padding: 2px 6px; border: 1px solid #d8dee8; border-radius: 4px; color: #8b95a5; background: #fff; font-size: 9px; }
.topbar-actions { display: flex; align-items: center; gap: 7px; }
.utility-button {
  position: relative;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid #e0e5ec;
  border-radius: 8px;
  color: #536174;
  background: #fff;
  text-decoration: none;
}
.utility-button:hover { color: var(--blue); border-color: #c8d4fa; }
.notification-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  width: 15px;
  height: 15px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: #d94752;
  font-size: 8px;
}
.mobile-menu { display: none; border: 0; background: transparent; font-size: 22px; }

.content { max-width: 1540px; margin: 0 auto; padding: 26px 28px 50px; }
.view { display: none; animation: rise .22s ease; }
.view.active { display: block; }
@keyframes rise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}
.page-head.compact { margin-bottom: 18px; }
.eyebrow, .section-kicker {
  display: block;
  color: #71809a;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
h1 { margin: 6px 0 7px; color: #12203a; font-size: clamp(25px, 3vw, 34px); line-height: 1.13; letter-spacing: -.03em; }
.page-head p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.page-actions { display: flex; gap: 8px; flex-shrink: 0; }
.button {
  min-height: 36px;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
}
.button.primary { border: 1px solid var(--blue); color: #fff; background: var(--blue); box-shadow: 0 6px 14px rgba(51,94,234,.18); }
.button.primary:hover { background: #284fce; }
.button.secondary { border: 1px solid #d9e0ea; color: #344054; background: #fff; }
.button.secondary:hover { border-color: #a9bad8; }
.button.full { width: 100%; margin-top: 14px; }
.text-button { border: 0; color: var(--blue); background: transparent; font-size: 10px; font-weight: 700; }

.insight-banner {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 11px 14px;
  border: 1px solid #d7e1ff;
  border-radius: 10px;
  background: linear-gradient(90deg, #edf2ff, #f7f9ff);
}
.insight-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; color: #fff; background: var(--blue); }
.insight-banner strong, .insight-banner span { display: block; }
.insight-banner strong { font-size: 11px; }
.insight-banner span { margin-top: 3px; color: #5e6d85; font-size: 10px; }
.insight-banner button { border: 0; color: var(--blue); background: transparent; font-size: 10px; font-weight: 700; }

.stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 15px; }
.stats-grid.compact-stats { grid-template-columns: repeat(4, minmax(0,1fr)); }
.stat-card {
  min-height: 100px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 3px 14px rgba(31,45,67,.035);
}
.stat-top { display: flex; align-items: center; justify-content: space-between; }
.stat-icon { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 7px; color: var(--blue); background: var(--blue-soft); font-size: 12px; }
.stat-change { color: var(--green); font-size: 9px; font-weight: 700; }
.stat-card strong { display: block; margin-top: 11px; color: #13213a; font-size: 21px; letter-spacing: -.02em; }
.stat-card small { display: block; margin-top: 3px; color: #79869a; font-size: 9px; }

.dashboard-grid { display: grid; grid-template-columns: 1.3fr 1.3fr 1fr; gap: 14px; }
.surface {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 3px 18px rgba(31,45,67,.04);
}
.span-2 { grid-column: span 2; }
.section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 15px; }
.section-head h2 { margin: 5px 0 0; color: #1a2740; font-size: 15px; line-height: 1.3; }
.pill { display: inline-flex; align-items: center; min-height: 21px; padding: 0 8px; border-radius: 11px; color: #5d6a7d; background: #f0f3f7; font-size: 8px; font-weight: 700; }
.pill.blue { color: #3158cb; background: var(--blue-soft); }
.pill.green { color: #18744b; background: var(--green-soft); }
.pill.amber { color: #9b650e; background: var(--amber-soft); }

.category-bars { display: grid; gap: 10px; }
.category-row { display: grid; grid-template-columns: minmax(145px, 1.15fr) 3fr 42px; align-items: center; gap: 12px; }
.category-label strong, .category-label span { display: block; }
.category-label strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.category-label span { margin-top: 2px; color: #8a95a5; font-size: 8px; }
.bar-track { height: 7px; overflow: hidden; border-radius: 5px; background: #eef1f5; }
.bar-track i { display: block; height: 100%; border-radius: inherit; }
.category-value { color: #58667b; font-size: 10px; text-align: right; }
.mini-sprint { display: grid; gap: 9px; }
.sprint-step { position: relative; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 9px; padding: 8px; border-radius: 8px; background: #f8f9fb; }
.sprint-step::before { content:""; position:absolute; left:21px; top:36px; width:1px; height:10px; background:#d9e0e9; }
.sprint-step:last-child::before { display:none; }
.sprint-num { display:grid; width:25px; height:25px; place-items:center; border-radius:7px; color:#3158cb; background:#e9efff; font-size:9px; font-weight:800; }
.sprint-step strong, .sprint-step span { display:block; }
.sprint-step strong { font-size:10px; }
.sprint-step span { margin-top:2px; color:#7c8797; font-size:8px; }
.sprint-step b { color:#71809a; font-size:8px; }
.donut-layout { display: grid; grid-template-columns: 132px 1fr; align-items:center; gap:15px; }
.donut { display:grid; width:122px; height:122px; place-items:center; border-radius:50%; background:conic-gradient(var(--blue) 0 70%, #7f98eb 70% 87%, #dde3ec 87% 100%); }
.donut > div { display:grid; width:78px; height:78px; place-content:center; border-radius:50%; background:#fff; text-align:center; }
.donut strong, .donut span { display:block; }
.donut strong { font-size:20px; }
.donut span { width:55px; margin-top:3px; color:#7b8798; font-size:7px; line-height:1.3; }
.legend { display:grid; gap:9px; }
.legend-row { display:grid; grid-template-columns:8px 1fr auto; align-items:center; gap:7px; font-size:9px; }
.legend-row i { width:7px; height:7px; border-radius:2px; }
.legend-row span { color:#69778b; }
.precedent-mini, .activity-list, .score-list, .run-list, .policy-list, .job-list { display:grid; gap:8px; }
.precedent-row { display:grid; grid-template-columns:30px 1fr auto; align-items:center; gap:9px; padding:7px 0; border-bottom:1px solid #eff1f4; }
.precedent-row:last-child { border-bottom:0; }
.precedent-symbol { display:grid; width:28px; height:28px; place-items:center; border-radius:8px; color:#526ee8; background:#eef2ff; font-size:10px; }
.precedent-row strong, .precedent-row span { display:block; }
.precedent-row strong { font-size:9px; }
.precedent-row span { margin-top:2px; color:#8792a2; font-size:8px; }
.precedent-row b { font-size:12px; }
.activity-card { grid-column: span 2; }
.activity-item { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:9px; padding:7px 0; border-bottom:1px solid #f0f2f5; }
.activity-item:last-child { border-bottom:0; }
.activity-item > span { display:grid; width:26px; height:26px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-size:9px; }
.activity-item strong, .activity-item small { display:block; }
.activity-item strong { font-size:9px; }
.activity-item small { margin-top:2px; color:#828e9f; font-size:8px; }
.activity-item time { color:#9ba4b2; font-size:8px; }
.live-label { display:flex; align-items:center; gap:5px; color:#728096; font-size:8px; text-transform:uppercase; }
.live-label span { width:6px; height:6px; border-radius:50%; background:#35b97e; box-shadow:0 0 0 3px rgba(53,185,126,.13); }

/* AOS GPT sprint overview */
.aos-page-head { margin-bottom: 16px; }
.entry-gate {
  display: grid;
  grid-template-columns: minmax(250px, .95fr) minmax(520px, 2.3fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
  padding: 15px 17px;
  border-color: #cfdafc;
  background:
    linear-gradient(110deg, rgba(238,243,255,.96), rgba(255,255,255,.98) 43%),
    #fff;
}
.entry-gate-intro {
  display: grid;
  grid-template-columns: 40px 1fr;
  align-items: start;
  gap: 11px;
}
.entry-badge {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg, #1f3f91, #3d63ea);
  font-size: 7px;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-transform: uppercase;
}
.entry-gate h2 { margin: 5px 0 4px; font-size: 14px; }
.entry-gate p { margin: 0; color: #748197; font-size: 8px; line-height: 1.5; }
.entry-documents {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 7px;
}
.entry-document, .stage-document, .living-document {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  min-width: 0;
  gap: 7px;
  border: 1px solid #e3e8ef;
  border-radius: 8px;
  color: #344158;
  background: #fff;
  text-align: left;
}
.entry-document { min-height: 47px; padding: 6px 7px; }
.entry-document:hover, .stage-document:hover, .living-document:hover {
  border-color: #aebff4;
  box-shadow: 0 6px 15px rgba(43, 68, 128, .08);
  transform: translateY(-1px);
}
.entry-document strong, .entry-document small,
.stage-document strong, .stage-document small,
.living-document strong, .living-document small { display: block; }
.entry-document strong { font-size: 7px; line-height: 1.35; }
.entry-document small { margin-top: 2px; color: #8a95a6; font-size: 6px; }
.entry-document > i {
  display: grid;
  width: 15px;
  height: 15px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #34a853;
  font-size: 7px;
  font-style: normal;
}
.entry-gate-action { min-width: 120px; text-align: right; }
.gate-score { margin-bottom: 8px; }
.gate-score strong, .gate-score span { display: block; }
.gate-score strong { color: #17326e; font-size: 17px; }
.gate-score span { margin-top: 2px; color: #7b8799; font-size: 7px; }
.entry-gate-action .button { min-height: 31px; padding: 0 10px; font-size: 8px; }

.document-logo {
  position: relative;
  display: grid;
  width: 27px;
  height: 31px;
  place-items: center;
  flex: 0 0 auto;
}
.document-logo svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.document-logo .doc-page { fill: #edf2ff; stroke: #6985e6; stroke-width: 1.4; }
.document-logo .doc-fold { fill: none; stroke: #6985e6; stroke-width: 1.4; stroke-linejoin: round; }
.document-logo .doc-line { fill: none; stroke: #9dafeb; stroke-width: 1.2; stroke-linecap: round; }
.document-logo b { position: relative; z-index: 1; margin-top: -2px; color: #3158cb; font-size: 7px; }
.document-logo.discovery .doc-page { fill: #f2edff; stroke: #876be0; }
.document-logo.discovery .doc-fold, .document-logo.discovery .doc-line { stroke: #a58ee9; }
.document-logo.discovery b { color: #6f50c8; }
.document-logo.design .doc-page { fill: #e8f7fb; stroke: #3c9dba; }
.document-logo.design .doc-fold, .document-logo.design .doc-line { stroke: #72b8ce; }
.document-logo.design b { color: #237f9b; }
.document-logo.assurance .doc-page { fill: #fff2e9; stroke: #e27b35; }
.document-logo.assurance .doc-fold, .document-logo.assurance .doc-line { stroke: #eb9b64; }
.document-logo.assurance b { color: #bd5e1e; }
.document-logo.operation .doc-page { fill: #eaf8f1; stroke: #42a677; }
.document-logo.operation .doc-fold, .document-logo.operation .doc-line { stroke: #75bd98; }
.document-logo.operation b { color: #28845b; }
.document-logo.living .doc-page { fill: #fff7df; stroke: #d4a02c; }
.document-logo.living .doc-fold, .document-logo.living .doc-line { stroke: #e3b85a; }
.document-logo.living b { color: #aa790c; font-size: 9px; }

.workflow-map-section {
  margin-bottom: 16px;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 3px 18px rgba(31,45,67,.04);
}
.workflow-map-head { align-items: flex-end; margin-bottom: 13px; }
.workflow-map-head h2 { font-size: 16px; }
.workflow-map-head p { margin: 4px 0 0; color: #7b8798; font-size: 8px; }
.document-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.document-legend span { display: inline-flex; align-items: center; gap: 4px; color: #6f7c90; font-size: 7px; }
.document-legend i { width: 7px; height: 7px; border-radius: 2px; background: #6985e6; }
.document-legend i.discovery { background: #876be0; }
.document-legend i.design { background: #3c9dba; }
.document-legend i.assurance { background: #e27b35; }
.document-legend i.operation { background: #42a677; }
.document-legend i.living { background: #d4a02c; }
.sprint-document-map {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
}
.sprint-stage-card {
  position: relative;
  min-width: 0;
  overflow: visible;
  border: 1px solid #e0e5ed;
  border-top: 3px solid var(--stage-colour);
  border-radius: 9px;
  background: #fbfcfe;
}
.sprint-stage-card > header {
  position: relative;
  display: grid;
  grid-template-columns: 31px 1fr;
  align-items: center;
  gap: 8px;
  min-height: 54px;
  padding: 9px;
  border-bottom: 1px solid #e7ebf1;
  background: #fff;
  border-radius: 8px 8px 0 0;
}
.stage-number {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: var(--stage-colour);
  font-size: 10px;
  font-weight: 800;
}
.sprint-stage-card header span, .sprint-stage-card header strong { display: block; }
.sprint-stage-card header span { color: #6f7d92; font-size: 7px; font-weight: 700; text-transform: uppercase; }
.sprint-stage-card header strong { margin-top: 3px; font-size: 10px; }
.stage-arrow {
  position: absolute;
  top: 22px;
  right: -16px;
  z-index: 4;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 3px solid #fff;
  border-radius: 50%;
  color: #7d8999;
  background: #e8edf4;
  font-size: 9px;
}
.sprint-stage-card > p {
  min-height: 39px;
  margin: 0;
  padding: 8px 9px 4px;
  color: #718096;
  font-size: 7px;
  line-height: 1.45;
}
.stage-documents { display: grid; gap: 5px; padding: 6px 7px 8px; }
.stage-document {
  grid-template-columns: 25px 1fr auto;
  min-height: 43px;
  padding: 5px 6px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.stage-document .document-logo { width: 24px; height: 28px; }
.stage-document strong { overflow: hidden; font-size: 7.5px; line-height: 1.3; text-overflow: ellipsis; }
.stage-document small {
  margin-top: 2px;
  color: #8a95a5;
  font-size: 6px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.sprint-stage-card > footer {
  display: grid;
  grid-template-columns: auto 1fr 17px;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 8px;
  border-top: 1px solid #e7ebf1;
  background: #fff;
  border-radius: 0 0 8px 8px;
}
.sprint-stage-card > footer span { color: #8a95a4; font-size: 6px; text-transform: uppercase; }
.sprint-stage-card > footer strong { font-size: 7px; }
.sprint-stage-card > footer i {
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--stage-colour);
  font-size: 7px;
  font-style: normal;
}
.aos-lower-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 14px; }
.living-document-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.living-document { grid-template-columns: 28px 1fr; min-height: 47px; padding: 6px 8px; }
.living-document strong { font-size: 8px; }
.living-document small { margin-top: 2px; color: #8792a2; font-size: 6px; }
.operating-rule-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 6px;
}
.operating-rule-flow > div { min-width: 0; padding: 7px; border-radius: 7px; background: #f6f8fb; text-align: center; }
.operating-rule-flow div span {
  display: grid;
  width: 19px;
  height: 19px;
  margin: 0 auto 5px;
  place-items: center;
  border-radius: 6px;
  color: #3158cb;
  background: #e8efff;
  font-size: 7px;
  font-weight: 800;
}
.operating-rule-flow strong, .operating-rule-flow small { display: block; }
.operating-rule-flow strong { font-size: 7px; }
.operating-rule-flow small { margin-top: 2px; color: #8590a0; font-size: 6px; line-height: 1.35; }
.operating-rule-flow > b { color: #a2acb9; font-size: 8px; }
.operating-rule-panel .text-button { margin-top: 12px; padding: 0; }

.list-surface { padding:0; overflow:hidden; }
.command-bar, .filter-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line); }
.saved-views { display:flex; flex-wrap:wrap; gap:4px; }
.saved-view, .missing-filter { min-height:29px; padding:0 10px; border:0; border-radius:7px; color:#657287; background:transparent; font-size:9px; font-weight:700; }
.saved-view.active, .missing-filter.active { color:#3158cb; background:#edf2ff; }
.list-tools { display:flex; align-items:center; gap:12px; color:#7d8999; font-size:9px; }
.segmented { display:flex; padding:2px; border:1px solid #e1e6ed; border-radius:7px; background:#f7f8fa; }
.segmented button { width:25px; height:24px; border:0; border-radius:5px; color:#8a95a6; background:transparent; }
.segmented button.active { color:#3158cb; background:#fff; box-shadow:0 1px 4px rgba(22,35,53,.12); }
.filter-row { justify-content:flex-start; background:#fbfcfd; }
.list-search { display:flex; align-items:center; gap:7px; width:260px; height:32px; padding:0 9px; border:1px solid #dce2ea; border-radius:7px; background:#fff; color:#8793a5; }
.list-search input { width:100%; border:0; outline:0; font-size:10px; }
.filter-row select { max-width:190px; height:32px; padding:0 24px 0 9px; border:1px solid #dce2ea; border-radius:7px; color:#526074; background:#fff; font-size:9px; }
.clear-filters { border:0; color:#6f7c90; background:transparent; font-size:9px; font-weight:700; }
.table-wrap { overflow-x:auto; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th { padding:9px 11px; color:#667287; background:#f7f9fb; font-size:8px; font-weight:700; text-align:left; text-transform:uppercase; letter-spacing:.05em; }
.data-table td { max-width:260px; padding:10px 11px; border-top:1px solid #edf0f4; color:#59677c; font-size:9px; vertical-align:middle; }
.data-table tbody tr { cursor:pointer; }
.data-table tbody tr:hover { background:#f8faff; }
.data-table td:first-child { color:#22304a; font-weight:700; }
.column-filters th { padding-top:3px; padding-bottom:7px; }
.column-filters input { width:100%; height:25px; padding:0 7px; border:1px solid #e0e5ec; border-radius:5px; font-size:8px; font-weight:400; text-transform:none; }
.priority, .tier, .status-text { display:inline-flex; min-height:19px; align-items:center; padding:0 7px; border-radius:10px; font-size:7px; font-weight:700; white-space:nowrap; }
.priority.high, .priority.p0 { color:#a82c37; background:var(--red-soft); }
.priority.medium, .priority.p1 { color:#9b650e; background:var(--amber-soft); }
.priority.low { color:#3c6d59; background:var(--green-soft); }
.tier.auto-refresh { color:#3158cb; background:var(--blue-soft); }
.tier.ai-assisted { color:#7551c2; background:#f3edff; }
.tier.human-controlled { color:#6c7480; background:#f0f2f5; }
.status-text.ready { color:#17714a; background:var(--green-soft); }
.status-text.planned { color:#9b650e; background:var(--amber-soft); }
.asset-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:14px; }
.asset-card { padding:13px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }
.asset-card:hover { border-color:#b8c6f3; box-shadow:var(--shadow); }
.asset-card h3 { margin:8px 0 5px; font-size:11px; }
.asset-card p { min-height:34px; margin:0; color:#758196; font-size:8px; line-height:1.45; }
.asset-meta { display:flex; justify-content:space-between; gap:8px; margin-top:10px; color:#8792a2; font-size:8px; }
.pagination { display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:11px 14px; border-top:1px solid var(--line); color:#788497; font-size:9px; }
.pagination button { min-height:28px; padding:0 9px; border:1px solid #dce2ea; border-radius:6px; color:#556277; background:#fff; font-size:8px; }
.pagination button:disabled { opacity:.4; cursor:not-allowed; }
.empty-state { padding:50px 20px; color:#7c8798; text-align:center; }
.empty-state div { font-size:28px; }
.empty-state h3 { margin:8px 0 4px; color:#334057; font-size:13px; }
.empty-state p { margin:0; font-size:9px; }

.factory-status { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; padding:12px 15px; border:1px solid #dce3ed; border-radius:10px; background:#fff; }
.factory-status > div { display:grid; grid-template-columns:10px auto 1fr; align-items:center; gap:9px; }
.factory-status strong { font-size:10px; }
.factory-status > div > span:last-child { color:#7c8899; font-size:9px; }
.factory-indicator { width:8px; height:8px; border-radius:50%; background:#9aa5b4; }
.factory-status.running .factory-indicator { background:#35b97e; animation:pulse 1s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 6px rgba(53,185,126,.13); } }
.sprint-timeline { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-bottom:15px; padding:16px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.timeline-step { position:relative; padding:0 12px; border-right:1px solid #e9edf2; }
.timeline-step:last-child { border-right:0; }
.timeline-step span { display:grid; width:28px; height:28px; place-items:center; margin-bottom:9px; border-radius:8px; color:#3158cb; background:#eaf0ff; font-size:9px; font-weight:800; }
.timeline-step h3 { margin:0 0 4px; font-size:11px; }
.timeline-step p { margin:0; color:#7c8899; font-size:8px; line-height:1.5; }
.timeline-step b { display:block; margin-top:8px; color:#4f5e73; font-size:8px; }
.two-column { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.two-column.wide-left { grid-template-columns:1.35fr .65fr; }
.factory-flow { display:grid; gap:8px; }
.flow-step { display:grid; grid-template-columns:29px 1fr auto; align-items:center; gap:9px; padding:9px; border:1px solid #edf0f4; border-radius:8px; }
.flow-step > span { display:grid; width:27px; height:27px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-size:9px; font-weight:800; }
.flow-step strong, .flow-step small { display:block; }
.flow-step strong { font-size:9px; }
.flow-step small { margin-top:2px; color:#8792a3; font-size:8px; }
.flow-step b { color:#79869a; font-size:8px; }
.shell-list { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.shell-item { display:grid; grid-template-columns:17px 1fr; align-items:center; gap:7px; min-height:36px; padding:7px; border:1px solid #edf0f4; border-radius:7px; font-size:8px; }
.shell-item i { display:grid; width:16px; height:16px; place-items:center; border-radius:50%; color:#9aa5b4; background:#edf0f3; font-style:normal; font-size:8px; }
.shell-item.ready i { color:#fff; background:#2dab77; }

.synergy-layout { display:grid; grid-template-columns:1.4fr .6fr; gap:14px; margin-bottom:14px; }
.synergy-canvas { position:relative; min-height:470px; overflow:hidden; background:radial-gradient(circle at 50% 50%, #fff 0, #f9fbff 58%, #f4f7fc 100%); }
.synergy-canvas::before, .synergy-canvas::after { content:""; position:absolute; left:50%; top:50%; border:1px dashed #d7deea; border-radius:50%; transform:translate(-50%,-50%); }
.synergy-canvas::before { width:300px; height:300px; }
.synergy-canvas::after { width:430px; height:430px; }
.synergy-core { position:absolute; left:50%; top:50%; z-index:2; display:grid; width:160px; height:160px; place-content:center; padding:15px; border:8px solid #edf2ff; border-radius:50%; color:#fff; background:linear-gradient(145deg,#233d83,#315eea); box-shadow:0 14px 35px rgba(42,78,182,.25); text-align:center; transform:translate(-50%,-50%); }
.synergy-core span, .synergy-core strong, .synergy-core small { display:block; }
.synergy-core span { margin-bottom:5px; color:#c8d5ff; font-size:8px; text-transform:uppercase; }
.synergy-core strong { font-size:14px; }
.synergy-core small { margin-top:6px; color:#d6dfff; font-size:7px; line-height:1.4; }
.domain-node { position:absolute; z-index:3; display:grid; width:115px; min-height:50px; place-content:center; padding:6px; border:1px solid #d9e1ee; border-radius:9px; color:#40506a; background:#fff; box-shadow:0 5px 16px rgba(26,43,69,.08); text-align:center; font-size:8px; font-weight:700; transform:translate(-50%,-50%); }
.domain-node:hover, .domain-node.active { color:#3158cb; border-color:#92a8f4; background:#f4f7ff; }
.synergy-detail h2 { margin:6px 0 8px; font-size:17px; }
.synergy-detail p { color:#6f7c90; font-size:9px; line-height:1.6; }
.asset-chip-list { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.asset-chip-list span { padding:5px 7px; border-radius:6px; color:#536279; background:#f0f3f7; font-size:8px; }
.synergy-stat { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px; }
.synergy-stat div { padding:10px; border-radius:8px; background:#f7f9fb; }
.synergy-stat strong, .synergy-stat span { display:block; }
.synergy-stat strong { font-size:16px; }
.synergy-stat span { margin-top:3px; color:#8590a0; font-size:7px; }
.impact-panel { margin-bottom:14px; }
.impact-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:center; gap:9px; }
.impact-flow > div { display:grid; grid-template-columns:25px 1fr; column-gap:8px; padding:10px; border:1px solid #e7ebf1; border-radius:8px; }
.impact-flow div span { grid-row:span 2; display:grid; width:24px; height:24px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-size:8px; font-weight:800; }
.impact-flow strong { font-size:9px; }
.impact-flow small { color:#818c9c; font-size:7px; line-height:1.4; }
.impact-flow b { color:#9ba5b3; }

.workflow-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.workflow-card { padding:0; overflow:hidden; }
.workflow-top { min-height:100px; padding:16px; color:#fff; background:linear-gradient(135deg,#162a50,#2c53b4); }
.workflow-top span { font-size:8px; text-transform:uppercase; opacity:.72; }
.workflow-top h2 { margin:7px 0 6px; font-size:14px; }
.workflow-top p { margin:0; color:#dbe3f7; font-size:8px; line-height:1.45; }
.workflow-body { padding:13px 16px 16px; }
.workflow-chain { display:flex; align-items:center; gap:6px; margin-bottom:12px; color:#536279; font-size:8px; }
.workflow-chain b { color:#9da7b4; }
.workflow-output { display:flex; flex-wrap:wrap; gap:5px; }
.workflow-output span { padding:4px 6px; border-radius:5px; color:#536279; background:#f1f4f7; font-size:7px; }
.workflow-foot { display:flex; justify-content:space-between; margin-top:12px; padding-top:10px; border-top:1px solid #edf0f4; color:#7d899a; font-size:7px; }

.missing-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:13px; }
.missing-summary .stat-card { min-height:84px; }
.missing-toolbar { display:flex; justify-content:space-between; margin-bottom:11px; }
.missing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.missing-card { position:relative; padding:15px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.missing-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; border-radius:11px 0 0 11px; background:#d6dce5; }
.missing-card.p0::before { background:#d14a54; }
.missing-card.p1::before { background:#d89a2f; }
.missing-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.missing-card h3 { margin:10px 0 6px; font-size:12px; line-height:1.35; }
.missing-card p { min-height:50px; margin:0; color:#748196; font-size:8px; line-height:1.55; }
.missing-auto { margin-top:9px; padding:8px; border-radius:7px; color:#53627a; background:#f6f8fb; font-size:7px; line-height:1.5; }
.missing-card footer { display:flex; align-items:center; justify-content:space-between; margin-top:11px; padding-top:9px; border-top:1px solid #edf0f4; }
.missing-card footer span { color:#7e8999; font-size:8px; }
.missing-status { min-height:27px; padding:0 8px; border:1px solid #dce2ea; border-radius:6px; color:#536177; background:#fff; font-size:8px; }

.precedent-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-bottom:14px; }
.precedent-card { padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.precedent-card-head { display:flex; align-items:center; justify-content:space-between; }
.precedent-card-head span { display:grid; width:31px; height:31px; place-items:center; border-radius:8px; color:#3158cb; background:#edf2ff; font-size:11px; }
.precedent-card-head b { font-size:18px; }
.precedent-card h3 { margin:10px 0 5px; font-size:10px; }
.precedent-card p { min-height:44px; margin:0; color:#7a8698; font-size:8px; line-height:1.5; }
.score-row { display:grid; grid-template-columns:125px 1fr 30px; align-items:center; gap:9px; font-size:8px; }
.score-bar { height:6px; border-radius:4px; background:#edf0f4; overflow:hidden; }
.score-bar i { display:block; height:100%; border-radius:inherit; background:#526fe7; }
.promotion-list { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0; padding:0; counter-reset:steps; list-style:none; }
.promotion-list li { position:relative; min-height:42px; padding:9px 8px 8px 35px; border:1px solid #edf0f4; border-radius:8px; color:#5e6c81; font-size:8px; line-height:1.45; counter-increment:steps; }
.promotion-list li::before { content:counter(steps); position:absolute; left:9px; top:8px; display:grid; width:19px; height:19px; place-items:center; border-radius:6px; color:#3158cb; background:#edf2ff; font-size:8px; font-weight:800; }

.run-item, .policy-item, .job-item { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:9px; padding:9px; border:1px solid #edf0f4; border-radius:8px; }
.run-item > span, .policy-item > span, .job-item > span { display:grid; width:27px; height:27px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-size:9px; }
.run-item strong, .run-item small, .policy-item strong, .policy-item small, .job-item strong, .job-item small { display:block; }
.run-item strong, .policy-item strong, .job-item strong { font-size:9px; }
.run-item small, .policy-item small, .job-item small { margin-top:2px; color:#8590a0; font-size:7px; }
.run-item time, .policy-item b, .job-item b { color:#7a8698; font-size:7px; }
.data-manager { display:grid; grid-template-columns:1fr 1fr 1fr auto; align-items:end; gap:12px; }
.data-manager label { color:#526074; font-size:8px; font-weight:700; }
.data-manager select { width:100%; height:32px; margin-top:6px; padding:0 8px; border:1px solid #dce2ea; border-radius:7px; color:#48566b; background:#fff; font-size:9px; }
.save-message { min-height:13px; margin:8px 0 0; color:#198754; font-size:8px; }

.integration-table { display:grid; }
.integration-row { display:grid; grid-template-columns:1.2fr .75fr .75fr .7fr; align-items:center; min-height:47px; padding:0 10px; border-top:1px solid #edf0f4; }
.integration-row.header { min-height:30px; border-top:0; color:#7a8698; background:#f7f9fb; font-size:7px; font-weight:700; text-transform:uppercase; }
.integration-row strong, .integration-row span { font-size:8px; }
.integration-name { display:flex; align-items:center; gap:8px; }
.integration-name i { display:grid; width:26px; height:26px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-style:normal; font-size:8px; }
.control-list { display:grid; gap:8px; }
.control-list > div { display:grid; grid-template-columns:27px 1fr; column-gap:8px; padding:9px; border:1px solid #edf0f4; border-radius:8px; }
.control-list span { grid-row:span 2; display:grid; width:25px; height:25px; place-items:center; border-radius:7px; color:#3158cb; background:#edf2ff; font-size:8px; font-weight:800; }
.control-list strong { font-size:9px; }
.control-list small { color:#818c9c; font-size:7px; line-height:1.45; }

.assistant-layout { display:grid; grid-template-columns:1.45fr .55fr; gap:14px; }
.assistant-chat { display:flex; min-height:610px; flex-direction:column; padding:0; overflow:hidden; }
.assistant-header { display:flex; align-items:center; gap:10px; min-height:64px; padding:12px 16px; border-bottom:1px solid var(--line); }
.assistant-avatar { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#193061,#426ce7); }
.assistant-header strong, .assistant-header span { display:block; }
.assistant-header strong { font-size:11px; }
.assistant-header span { margin-top:3px; color:#7d8999; font-size:8px; }
.assistant-header i { display:inline-block; width:6px; height:6px; margin-right:4px; border-radius:50%; background:#35b97e; }
.prompt-chips { display:flex; flex-wrap:wrap; gap:6px; padding:11px 16px; border-bottom:1px solid #edf0f4; }
.prompt-chips button { min-height:27px; padding:0 9px; border:1px solid #dce2ea; border-radius:14px; color:#536177; background:#fff; font-size:8px; }
.prompt-chips button:hover { color:#3158cb; border-color:#adc0f7; }
.chat-thread { flex:1; display:flex; flex-direction:column; gap:12px; padding:18px; overflow-y:auto; background:#fbfcfe; }
.chat-bubble { max-width:82%; padding:11px 13px; border-radius:10px; font-size:9px; line-height:1.65; white-space:pre-line; }
.chat-bubble.assistant { align-self:flex-start; border:1px solid #e2e7ef; border-radius:2px 10px 10px; color:#4d5b70; background:#fff; }
.chat-bubble.user { align-self:flex-end; border-radius:10px 2px 10px 10px; color:#fff; background:#315eea; }
.chat-bubble strong { color:#1c2b45; }
.chat-input { display:grid; grid-template-columns:1fr 36px; align-items:end; gap:8px; padding:12px; border-top:1px solid var(--line); background:#fff; }
.chat-input textarea { resize:none; min-height:42px; max-height:110px; padding:10px; border:1px solid #dce2ea; border-radius:8px; outline:0; font-size:9px; }
.chat-input textarea:focus { border-color:#8ca4f3; box-shadow:0 0 0 3px rgba(51,94,234,.08); }
.chat-input button { display:grid; width:36px; height:36px; place-items:center; border:0; border-radius:8px; color:#fff; background:#315eea; }
.assistant-context { align-self:start; }
.context-list { display:grid; gap:9px; }
.context-list > div { display:grid; grid-template-columns:30px 1fr auto; align-items:center; gap:9px; padding:8px 0; border-bottom:1px solid #edf0f4; }
.source-icon { display:grid; width:28px; height:28px; place-items:center; border-radius:7px; color:#fff; font-size:8px; font-weight:800; }
.source-icon.excel { background:#248b5b; }
.source-icon.model { background:#315eea; }
.source-icon.sop { background:#2766a5; }
.source-icon.cloud { background:#7860c7; }
.context-list strong, .context-list small { display:block; }
.context-list strong { font-size:8px; }
.context-list small { margin-top:2px; color:#8792a2; font-size:7px; }
.assistant-note { margin-top:14px; padding:11px; border-radius:8px; color:#526078; background:#f2f5f9; }
.assistant-note strong { font-size:9px; }
.assistant-note p { margin:5px 0 0; font-size:8px; line-height:1.55; }

.overlay { position:fixed; inset:0; z-index:60; background:rgba(11,20,37,.35); backdrop-filter:blur(1px); }
.drawer, .notification-panel {
  position:fixed;
  top:0;
  right:0;
  z-index:70;
  width:min(440px,92vw);
  height:100vh;
  overflow-y:auto;
  border-left:1px solid var(--line);
  background:#fff;
  box-shadow:-12px 0 35px rgba(11,22,41,.16);
  transform:translateX(105%);
  transition:transform .22s ease;
}
.drawer.open, .notification-panel.open { transform:none; }
.drawer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:18px; border-bottom:1px solid var(--line); }
.drawer-head span { color:#758297; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.drawer-head h2 { margin:5px 0 0; font-size:17px; }
.drawer-close { border:0; color:#6c788b; background:transparent; font-size:24px; line-height:1; }
.drawer-actions { display:flex; gap:8px; padding:12px 18px; border-bottom:1px solid var(--line); }
.drawer-body { padding:18px; }
.detail-block { margin-bottom:17px; }
.detail-block h3 { margin:0 0 7px; color:#68768b; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.detail-block p { margin:0; color:#536177; font-size:9px; line-height:1.6; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.detail-grid div { padding:9px; border-radius:7px; background:#f6f8fb; }
.detail-grid strong, .detail-grid span { display:block; }
.detail-grid strong { color:#7d8999; font-size:7px; text-transform:uppercase; }
.detail-grid span { margin-top:4px; font-size:9px; }
.document-guide-hero {
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: start;
  gap: 12px;
  padding: 12px;
  border: 1px solid #dfe6f3;
  border-radius: 9px;
  background: #f7f9fd;
}
.document-guide-hero .document-logo { width: 38px; height: 44px; }
.document-guide-hero h3 { margin: 0 0 5px; color: #4e5d75; }
.document-guide-hero p { margin: 0; }
.notification-panel { width:min(390px,92vw); }
.notification-list { display:grid; }
.notification-list button { display:grid; grid-template-columns:30px 1fr auto; align-items:start; gap:10px; width:100%; padding:13px 16px; border:0; border-bottom:1px solid #edf0f4; background:#fff; text-align:left; }
.notification-list button:hover { background:#f8faff; }
.notice-icon { display:grid; width:28px; height:28px; place-items:center; border-radius:8px; font-size:9px; font-weight:800; }
.notice-icon.red { color:#b5323d; background:var(--red-soft); }
.notice-icon.amber { color:#9b650e; background:var(--amber-soft); }
.notice-icon.blue { color:#3158cb; background:var(--blue-soft); }
.notice-icon.purple { color:#7856c8; background:#f3edff; }
.notification-list strong, .notification-list small { display:block; }
.notification-list strong { font-size:9px; line-height:1.45; }
.notification-list small { margin-top:3px; color:#8792a2; font-size:8px; }
.notification-list time { color:#a0a9b6; font-size:7px; }

@media (max-width: 1180px) {
  .stats-grid { grid-template-columns:repeat(3,1fr); }
  .dashboard-grid { grid-template-columns:1fr 1fr; }
  .span-2 { grid-column:span 2; }
  .activity-card { grid-column:span 1; }
  .workflow-grid, .missing-grid { grid-template-columns:repeat(2,1fr); }
  .precedent-grid { grid-template-columns:repeat(3,1fr); }
  .synergy-layout { grid-template-columns:1fr; }
  .synergy-canvas { min-height:500px; }
  .entry-gate { grid-template-columns: 1fr 2fr; }
  .entry-gate-action { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
  .gate-score { margin: 0; }
}

@media (max-width: 860px) {
  .sidebar { transform:translateX(-105%); transition:transform .22s ease; }
  .sidebar.open { transform:none; }
  .main-column { margin-left:0; }
  .mobile-menu { display:block; }
  .topbar { padding:0 14px; gap:10px; }
  .global-search { width:auto; flex:1; }
  .content { padding:20px 15px 38px; }
  .page-head { align-items:flex-start; flex-direction:column; }
  .stats-grid, .stats-grid.compact-stats { grid-template-columns:repeat(2,1fr); }
  .two-column, .two-column.wide-left, .assistant-layout { grid-template-columns:1fr; }
  .sprint-timeline { grid-template-columns:1fr 1fr; gap:12px; }
  .timeline-step { border-right:0; border-bottom:1px solid #e9edf2; padding-bottom:12px; }
  .impact-flow { grid-template-columns:1fr; }
  .impact-flow > b { transform:rotate(90deg); text-align:center; }
  .data-manager { grid-template-columns:1fr 1fr; }
  .asset-grid { grid-template-columns:1fr 1fr; }
  .entry-gate { grid-template-columns: 1fr; }
  .entry-gate-action { grid-column: auto; }
  .entry-documents { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sprint-document-map {
    grid-template-columns: repeat(5, 220px);
    overflow-x: auto;
    padding: 2px 2px 10px;
    scroll-snap-type: x proximity;
  }
  .sprint-stage-card { scroll-snap-align: start; }
  .aos-lower-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .topbar-actions .doc-link, .topbar-actions .avatar { display:none; }
  .global-search kbd { display:none; }
  .content { padding:17px 11px 30px; }
  h1 { font-size:25px; }
  .page-actions { width:100%; }
  .page-actions .button { flex:1; display:grid; place-items:center; }
  .insight-banner { grid-template-columns:32px 1fr; }
  .insight-banner button { grid-column:2; justify-self:start; padding:0; }
  .stats-grid, .stats-grid.compact-stats, .dashboard-grid, .workflow-grid, .missing-grid, .precedent-grid { grid-template-columns:1fr; }
  .span-2, .activity-card { grid-column:span 1; }
  .category-row { grid-template-columns:120px 1fr 32px; gap:7px; }
  .donut-layout { grid-template-columns:118px 1fr; }
  .command-bar, .filter-row { align-items:stretch; flex-direction:column; }
  .list-tools { justify-content:space-between; }
  .list-search, .filter-row select { width:100%; max-width:none; }
  .asset-grid { grid-template-columns:1fr; }
  .sprint-timeline, .shell-list { grid-template-columns:1fr; }
  .missing-summary { grid-template-columns:1fr 1fr; }
  .synergy-canvas { min-height:560px; }
  .domain-node { width:92px; font-size:7px; }
  .promotion-list { grid-template-columns:1fr; }
  .data-manager { grid-template-columns:1fr; }
  .integration-row { grid-template-columns:1.3fr .8fr .8fr; }
  .integration-row > :nth-child(3) { display:none; }
  .assistant-chat { min-height:520px; }
  .chat-bubble { max-width:92%; }
  .entry-gate { padding: 13px; }
  .entry-documents { grid-template-columns: 1fr 1fr; }
  .workflow-map-section { padding: 13px; }
  .workflow-map-head { align-items: flex-start; flex-direction: column; }
  .document-legend { justify-content: flex-start; }
  .sprint-document-map { grid-template-columns: repeat(5, 238px); margin-right: -13px; }
  .living-document-strip { grid-template-columns: 1fr 1fr; }
  .operating-rule-flow { grid-template-columns: 1fr; }
  .operating-rule-flow > b { transform: rotate(90deg); text-align: center; }
}
