:root {
  color-scheme: light;
  --bg: #f6f8fa;
  --panel: #ffffff;
  --text: #27313d;
  --muted: #7b8492;
  --line: #e7ebef;
  --line-strong: #d7dde4;
  --primary: #17aee2;
  --primary-dark: #0c8fbd;
  --primary-soft: #eef9fd;
  --nav: #121b3d;
  --nav-2: #1f2856;
  --cyan: #20b9e8;
  --amber: #a96b12;
  --amber-soft: #fff7e8;
  --blue: #0b84b3;
  --blue-soft: #eaf8fd;
  --danger: var(--amber);
  --danger-soft: var(--amber-soft);
  --ok: var(--blue);
  --ok-soft: var(--blue-soft);
  --warn: var(--amber);
  --warn-soft: var(--amber-soft);
  --shadow: none;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  display: grid;
  grid-template-columns: 64px 224px 1fr;
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
  padding: 26px 8px;
  background: #121b3d;
  color: #dceafe;
  box-shadow: none;
  z-index: 10;
}

.sidebar-brand {
  display: grid;
  justify-items: center;
  gap: 8px;
  align-items: center;
  margin-bottom: 26px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 0;
  background: transparent;
  opacity: 0.95;
  color: #ffffff;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.08em;
  box-shadow: none;
}

.brand-mark::before {
  content: "K";
}

.sidebar-brand div {
  display: none;
}

.sidebar-nav {
  display: grid;
  gap: 8px;
  justify-items: center;
}

.sidebar-link {
  position: relative;
  display: grid;
  grid-template-rows: 24px auto;
  place-items: center;
  align-content: center;
  gap: 4px;
  width: 100%;
  max-width: 56px;
  min-height: 58px;
  border: 0;
  border-radius: 0;
  padding: 6px 0 7px;
  background: transparent;
  color: rgba(255, 255, 255, 0.70);
  text-align: center;
  text-decoration: none;
}

.sidebar-link::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: transparent;
}

.sidebar-link:hover,
.sidebar-link.active {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
}

.sidebar-link.active::before {
  background: #28c7f3;
}

.sidebar-link span {
  position: relative;
  display: block;
  width: 24px;
  height: 24px;
  border-radius: 2px;
  background: transparent;
  color: currentColor;
}

.sidebar-link span::before,
.sidebar-link span::after {
  content: "";
  position: absolute;
  border: 0;
  border-color: currentColor;
  border-style: solid;
  border-width: 0;
  box-sizing: border-box;
}

.sidebar-link b {
  display: block;
  color: currentColor;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
}

.nav-home span::before {
  left: 5px;
  top: 4px;
  width: 14px;
  height: 14px;
  border-width: 1.5px 1.5px 0 0;
  border-radius: 2px;
  transform: rotate(-45deg);
}

.nav-home span::after {
  left: 6px;
  top: 10px;
  width: 12px;
  height: 9px;
  border-width: 0 1.5px 1.5px;
  border-radius: 1px 1px 2px 2px;
}

.nav-schedule span::before {
  left: 5px;
  top: 3px;
  width: 12px;
  height: 16px;
  border-width: 1.5px;
  border-radius: 2px;
}

.nav-schedule span::after {
  right: 3px;
  bottom: 3px;
  width: 8px;
  height: 8px;
  border-width: 1.5px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px transparent;
}

.nav-bid span::before {
  left: 6px;
  top: 4px;
  width: 0;
  height: 16px;
  border-left-width: 1.5px;
  border-radius: 2px;
}

.nav-bid span::after {
  left: 8px;
  top: 4px;
  width: 10px;
  height: 8px;
  border-width: 1.5px 1.5px 1.5px 0;
  border-radius: 0 2px 2px 0;
}

.nav-evidence span::before {
  left: 5px;
  top: 3px;
  width: 13px;
  height: 16px;
  border-width: 1.5px;
  border-radius: 2px;
}

.nav-evidence span::after {
  left: 9px;
  top: 8px;
  width: 8px;
  height: 0;
  border-top-width: 1.5px;
  box-shadow: 0 4px 0 0 currentColor;
}

.nav-add span::before {
  left: 5px;
  top: 11px;
  width: 14px;
  height: 0;
  border-top-width: 1.5px;
}

.nav-add span::after {
  left: 11px;
  top: 5px;
  width: 0;
  height: 14px;
  border-left-width: 1.5px;
}

.nav-list span::before {
  left: 5px;
  top: 6px;
  width: 14px;
  height: 0;
  border-top-width: 1.5px;
  box-shadow: 0 6px 0 0 currentColor, 0 12px 0 0 currentColor;
}

.nav-list span::after {
  display: none;
}

.nav-export span::before {
  left: 11px;
  top: 4px;
  width: 0;
  height: 11px;
  border-left-width: 1.5px;
}

.nav-export span::after {
  left: 5px;
  bottom: 4px;
  width: 14px;
  height: 7px;
  border-width: 0 1.5px 1.5px;
  border-radius: 0 0 2px 2px;
  box-shadow: 6px -5px 0 -4px currentColor, 8px -5px 0 -4px currentColor;
}

.status-panel {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  padding: 0;
  background:
    linear-gradient(180deg, rgba(64, 207, 240, 0.24) 0%, rgba(64, 207, 240, 0) 28%),
    linear-gradient(180deg, #12a7dc 0%, #087fc8 42%, #055b9f 100%);
  color: #ffffff;
}

.status-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.07), transparent 40%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.07), transparent 30%);
}

.status-panel::after {
  display: none;
}

.status-summary {
  position: relative;
  z-index: 1;
  padding: 22px 20px 0;
  background: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}

.status-details {
  position: relative;
  z-index: 1;
  min-height: auto;
  padding: 18px 20px 28px;
  background: rgba(0, 73, 132, 0.12);
}

.side-action-hub {
  display: grid;
  gap: 0;
}

.side-score-card,
.side-metric-board,
.side-package-card {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.side-score-card {
  position: relative;
  display: grid;
  justify-items: center;
  padding: 4px 0 24px;
  color: #ffffff;
  text-align: center;
  cursor: pointer;
}

.side-score-card > * {
  position: relative;
  z-index: 1;
}

.side-kicker,
.side-section-title {
  display: block;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: none;
}

.side-score-ring {
  --score: 0;
  position: relative;
  display: grid;
  align-content: center;
  justify-content: center;
  justify-items: center;
  width: 130px;
  height: 122px;
  padding-top: 4px;
}

.side-score-svg {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 118px;
  height: 118px;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.side-score-track,
.side-score-progress {
  fill: none;
  stroke-width: 7;
  stroke-linecap: round;
}

.side-score-track {
  stroke: rgba(255, 255, 255, 0.24);
}

.side-score-progress {
  stroke: #ffffff;
  transform: rotate(-90deg);
  transform-origin: 60px 60px;
  transition: stroke-dashoffset .35s ease;
}

.side-score-ring em {
  position: relative;
  z-index: 1;
  display: block;
  margin-bottom: 8px;
  color: rgba(255,255,255,.88);
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
}

.side-score-ring div {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: baseline;
  justify-content: center;
}

.side-score-ring strong {
  color: #ffffff;
  font-size: 31px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
}

.side-score-ring span {
  margin-left: 2px;
  color: rgba(255,255,255,.88);
  font-size: 15px;
  font-weight: 300;
}

.side-score-card small {
  margin-top: 8px;
  color: rgba(255,255,255,.82);
  font-size: 11px;
  font-weight: 300;
}

.side-metric-board,
.side-package-card {
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.side-metric-board {
  display: grid;
  gap: 0;
}

.side-metric-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: baseline;
  min-height: 42px;
  padding: 10px 0;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.side-metric-row span,
.side-package-row span {
  color: rgba(255, 255, 255, 0.74);
  font-size: 11px;
  font-weight: 300;
}

.side-metric-row strong {
  color: #ffffff;
  font-size: 17px;
  font-weight: 300;
  line-height: 1;
}

.side-metric-deadline {
  cursor: pointer;
}

.side-metric-deadline small {
  grid-column: 1 / -1;
  margin-top: -4px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 10px;
  font-weight: 300;
}

.side-package-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: 0;
  padding: 12px 0;
  color: #ffffff;
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  cursor: pointer;
  text-align: left;
}

.side-package-row:hover,
.side-score-card:hover,
.side-metric-deadline:hover {
  background: rgba(255,255,255,.05);
}

.side-package-row strong {
  color: #ffffff;
  font-size: 27px;
  font-weight: 300;
  line-height: 1;
}

.side-package-row.bid strong {
  color: #ffffff;
}

.legacy-side-metrics {
  display: none;
}

.score-ring {
  --score: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  margin: 4px auto 18px;
  border-radius: 999px;
}

.score-ring::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: conic-gradient(
    from 0deg,
    #ffffff 0 calc(var(--score) * 1%),
    rgba(255, 255, 255, 0.34) calc(var(--score) * 1%) 100%
  );
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 7px), #000 calc(100% - 6px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 7px), #000 calc(100% - 6px));
  pointer-events: none;
}

.score-ring .score-label,
.score-ring small {
  color: rgba(255, 255, 255, 0.82);
  font-size: 10px;
  line-height: 1.2;
  white-space: nowrap;
}

.score-value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin: 4px 0 2px;
  line-height: 1;
}

.score-value strong {
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
}

.score-value b {
  margin-left: 2px;
  font-size: 13px;
  font-weight: 400;
}

.status-panel h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}

.status-panel p {
  margin: 10px 0 24px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

.status-metrics {
  display: grid;
  gap: 0;
}

.status-metrics div {
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.status-metrics span {
  display: block;
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
}

.status-metrics strong {
  display: block;
  margin-top: 6px;
  font-size: 22px;
  font-weight: 300;
  letter-spacing: 0.02em;
}

.profile-button {
  width: 100%;
  margin-top: 0;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  padding: 11px 12px;
  background: rgba(255,255,255,.08);
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
}

.sidebar-foot {
  display: none;
  margin-top: auto;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 4px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.05);
}

.sidebar-foot span,
.sidebar-foot small {
  display: block;
}

.sidebar-foot span {
  color: #fff;
  font-weight: 500;
}

.sidebar-foot small {
  margin-top: 4px;
  color: #9fb3d9;
  line-height: 1.5;
}

.app-main {
  min-width: 0;
  background: #ffffff;
}

.app-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  max-width: 1480px;
  margin: 0 auto;
  padding: 24px 32px 10px;
  background: transparent;
  color: var(--text);
  border-bottom: 0;
}

.app-header h1,
.panel h2,
.panel h3,
.panel h4 {
  margin: 0;
  font-weight: 400;
  letter-spacing: -0.02em;
}

.app-header h1 {
  font-size: 24px;
  font-weight: 300;
  letter-spacing: -0.03em;
}

.eyebrow {
  margin: 0 0 8px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.detail-panel .eyebrow {
  color: var(--primary);
}

.lead {
  max-width: 720px;
  margin: 6px 0 0;
  color: #7c8da1;
  font-size: 12px;
}

.header-actions,
.form-actions,
.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
}

.layout {
  display: grid;
  grid-template-columns: minmax(360px, 420px) 1fr;
  gap: 22px;
  padding: 18px 32px 42px;
  max-width: 1480px;
  margin: 0 auto;
}

.layout.form-route {
  grid-template-columns: minmax(360px, 680px);
  justify-content: center;
}

.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: none;
}

.form-panel,
.list-panel,
.detail-panel {
  padding: 22px;
}

.list-panel {
  grid-column: 1 / -1;
  min-width: 0;
}

.dashboard-panel,
.dev-panel {
  grid-column: 1 / -1;
  padding: 22px;
}

.dashboard-panel {
  padding: 0;
  overflow: hidden;
}

.home-hero {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  position: relative;
  min-height: auto;
  padding: 28px 32px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
  overflow: hidden;
}

.home-hero::after {
  display: none;
}

.home-hero::before {
  display: none;
}

.home-hero h2 {
  max-width: 660px;
  font-size: 26px;
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: -0.035em;
}

.home-hero p {
  max-width: 620px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.home-hero-actions,
.product-preview,
.preview-main,
.preview-sidebar,
.preview-mobile,
.preview-sidebar::before,
.preview-sidebar::after {
  display: none;
}

.annual-schedule {
  padding: 26px 28px 30px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfd;
  scroll-margin-top: 18px;
}

.annual-schedule-heading,
.annual-box-heading,
.annual-focus {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
}

.annual-schedule-heading h3 {
  font-size: 22px;
  font-weight: 400;
}

.annual-schedule-heading p,
.annual-box-heading p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.annual-cycle-badge {
  flex: 0 0 auto;
  min-width: 116px;
  border: 1px solid #bde7f5;
  border-radius: 5px;
  padding: 10px 12px;
  background: #fff;
  text-align: right;
}

.annual-cycle-badge span,
.annual-cycle-badge strong {
  display: block;
}

.annual-cycle-badge span {
  color: var(--primary-dark);
  font-size: 13px;
}

.annual-cycle-badge strong {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

.annual-focus {
  align-items: center;
  margin-top: 20px;
  border-left: 4px solid var(--primary);
  padding: 15px 18px;
  background: #eef9fd;
}

.annual-focus span,
.annual-focus strong,
.annual-focus p {
  display: block;
}

.annual-focus span {
  color: var(--primary-dark);
  font-size: 11px;
}

.annual-focus strong {
  margin-top: 3px;
  font-size: 16px;
  font-weight: 500;
}

.annual-focus p {
  margin: 5px 0 0;
  color: #587083;
  font-size: 12px;
  line-height: 1.55;
}

.annual-focus > b {
  color: var(--primary);
  font-size: 30px;
  font-weight: 300;
  white-space: nowrap;
}

.annual-timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 20px;
  border: 1px solid var(--line);
  background: #fff;
}

.annual-timeline-item {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  border: 0;
  padding: 15px 14px 16px;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.annual-timeline-item:last-child {
  border-right: 0;
}

.annual-timeline-item::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  height: 3px;
  background: transparent;
}

.annual-timeline-item:hover,
.annual-timeline-item:focus-visible {
  background: #f6fbfd;
}

.annual-timeline-item:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: -2px;
}

.annual-timeline-item.current {
  background: #f7fcfe;
}

.annual-timeline-item.current::before {
  background: #36bde8;
}

.annual-timeline-item.active {
  background: #eef1fa;
  box-shadow: inset 0 0 0 2px #465a91;
}

.annual-timeline-item.active::before {
  background: #465a91;
}

.annual-phase-meta {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  align-items: flex-start;
  min-height: 23px;
  margin-bottom: 8px;
}

.annual-phase-meta > span {
  display: block;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 500;
}

.annual-phase-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 3px;
}

.phase-tag {
  display: inline-flex;
  border-radius: 999px;
  padding: 2px 6px;
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.35;
  white-space: nowrap;
}

.phase-tag.current {
  color: #087da7;
  background: #dff6fd;
}

.phase-tag.complete {
  color: #216e4e;
  background: #e5f5ed;
}

.phase-tag.progress {
  color: #9a5d08;
  background: #fff1d8;
}

.annual-timeline-item strong {
  display: block;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}

.annual-timeline-item p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.55;
}

.annual-preparation-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-top: 18px;
}

.annual-deadline-box {
  max-width: none;
}

.annual-phase-detail {
  margin-top: 14px;
  border: 1px solid #bfe5f2;
  padding: 18px;
  background: #fff;
}

.annual-phase-detail-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.annual-phase-detail-heading span {
  color: var(--primary-dark);
  font-size: 11px;
}

.annual-phase-detail-heading h4 {
  margin: 4px 0 0;
  font-size: 17px;
  font-weight: 500;
}

.annual-phase-detail-heading p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.annual-phase-progress {
  display: grid;
  justify-items: end;
  gap: 2px;
  flex: 0 0 auto;
}

.annual-phase-progress span,
.annual-phase-progress small {
  color: var(--muted);
  font-size: 10px;
}

.annual-phase-progress > strong {
  color: var(--primary-dark);
  font-size: 20px;
  font-weight: 400;
  white-space: nowrap;
}

.annual-status-guide {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 10.5px;
}

.annual-status-guide span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.status-dot.not-started {
  background: #aab3bd;
}

.status-dot.preparing {
  background: #e1a12c;
}

.status-dot.confirmed {
  background: #31956d;
}

.annual-phase-task-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.annual-phase-task {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px 82px 150px;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  padding: 12px;
  background: #fff;
}

.annual-auto-status {
  display: grid;
  justify-items: start;
  gap: 4px;
}

.annual-auto-status span {
  color: var(--muted);
  font-size: 9.5px;
}

.annual-auto-status strong {
  border-radius: 999px;
  padding: 4px 8px;
  background: #edf0f3;
  color: #76828d;
  font-size: 10px;
  font-weight: 500;
}

.annual-auto-status.status-preparing strong {
  background: #fff0d3;
  color: #9c620d;
}

.annual-auto-status.status-confirmed strong {
  background: #e1f3ea;
  color: #287253;
}

.annual-task-ai-button {
  border: 1px solid #465a91;
  border-radius: 4px;
  padding: 8px 9px;
  background: #465a91;
  color: #fff;
  font-size: 10.5px;
}

.annual-task-ai-button:disabled {
  cursor: not-allowed;
  border-color: #d9dee4;
  background: #eef1f4;
  color: #9da7b1;
}

.annual-task-ai-result {
  min-height: 15px;
}

.annual-task-ai-result strong,
.annual-task-ai-result p,
.annual-task-ai-result small {
  display: block;
}

.annual-task-ai-result strong {
  font-size: 10.5px;
}

.annual-task-ai-result p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 10px;
}

.annual-task-ai-result > small {
  color: var(--muted);
  font-size: 9.5px;
}

.annual-task-ai-result.approved strong {
  color: #287253;
}

.annual-task-ai-result.needs-review strong {
  color: #a1660e;
}

.annual-task-main {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.annual-task-files {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.annual-task-files > small {
  color: #99a3ad;
  font-size: 10px;
}

.annual-file-chip {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  max-width: 100%;
  border: 1px solid #c7e5ee;
  border-radius: 999px;
  padding: 4px 5px 4px 9px;
  background: #f2fbfe;
}

.annual-file-chip b {
  overflow: hidden;
  max-width: 180px;
  color: #296279;
  font-size: 10px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.annual-file-chip small {
  color: #7893a0;
  font-size: 9px;
  white-space: nowrap;
}

.annual-file-chip button {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: #dceef4;
  color: #527684;
  font-size: 11px;
}

.annual-upload-button {
  display: block;
}

.annual-upload-button input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.annual-upload-button > span {
  display: block;
  border: 1px solid #8dcfe5;
  border-radius: 4px;
  padding: 8px 10px;
  background: #fff;
  color: #0a82ae;
  font-size: 10.5px;
  text-align: center;
  cursor: pointer;
}

.annual-upload-button:hover > span {
  background: #edf9fd;
}

.annual-phase-task.status-preparing {
  border-left: 4px solid #e1a12c;
  background: #fffcf5;
}

.annual-phase-task.status-confirmed {
  border-left: 4px solid #31956d;
  background: #f5fbf8;
}

.annual-phase-task span,
.annual-phase-task strong,
.annual-phase-task small {
  display: block;
}

.annual-phase-task strong {
  color: var(--text);
  font-size: 12.5px;
  font-weight: 500;
}

.annual-phase-task small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.5;
}

.annual-phase-task label {
  display: grid;
  gap: 5px;
}

.annual-phase-task label b {
  color: var(--muted);
  font-size: 9.5px;
  font-weight: 400;
}

.annual-phase-task select {
  padding: 7px 8px;
  font-size: 11px;
}

.annual-checklist-box,
.annual-deadline-box {
  border: 1px solid var(--line);
  padding: 17px;
  background: #fff;
}

.annual-box-heading h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}

.annual-box-heading > strong {
  color: var(--primary-dark);
  font-size: 18px;
  font-weight: 400;
}

.annual-ai-check-button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 4px;
  padding: 9px 14px;
  background: #465a91;
  color: #fff;
  font-size: 11px;
}

.annual-ai-check-button:hover {
  background: #344673;
}

.annual-ai-summary {
  margin-top: 14px;
  border-left: 4px solid #9ca8b4;
  padding: 11px 13px;
  background: #f6f8fa;
}

.annual-ai-summary span {
  display: block;
  font-size: 12px;
  font-weight: 500;
}

.annual-ai-summary p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 10.5px;
}

.annual-ai-summary.warning {
  border-left-color: #db9a2c;
  background: #fff9ee;
}

.annual-ai-summary.progress {
  border-left-color: #318db1;
  background: #f1f9fc;
}

.annual-ai-summary.complete {
  border-left-color: #31956d;
  background: #f1faf6;
}

.annual-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 14px;
}

.annual-ai-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-items: center;
  border: 1px solid var(--line);
  padding: 10px;
  background: #fff;
}

.annual-ai-result.confirmed {
  border-left: 4px solid #31956d;
  background: #f5fbf8;
}

.annual-ai-result.preparing {
  border-left: 4px solid #e1a12c;
  background: #fffcf5;
}

.annual-ai-result.needs-file,
.annual-ai-result.missing {
  border-left: 4px solid #aab3bd;
}

.annual-ai-result span,
.annual-ai-result strong,
.annual-ai-result small {
  display: block;
}

.annual-ai-result > b {
  font-size: 10px;
  font-weight: 500;
}

.annual-ai-result.confirmed > b {
  color: #267653;
}

.annual-ai-result.preparing > b {
  color: #a1660e;
}

.annual-ai-result.needs-file > b,
.annual-ai-result.missing > b {
  color: #7b8792;
}

.annual-ai-result strong {
  color: var(--text);
  font-size: 12px;
  font-weight: 400;
}

.annual-ai-result small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
}

.annual-ai-result > small {
  grid-column: 1 / -1;
}

.annual-deadline-box #annualDeadlines {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.annual-deadline-item {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 10px;
  border-left: 3px solid var(--line-strong);
  padding: 10px 11px;
  background: #f8fafb;
}

.annual-deadline-item.urgent {
  border-left-color: #d9901a;
  background: #fff8eb;
}

.annual-deadline-item.passed {
  border-left-color: #8b98a5;
}

.annual-deadline-item > span {
  color: var(--muted);
  font-size: 11px;
}

.annual-deadline-item strong,
.annual-deadline-item small {
  display: block;
}

.annual-deadline-item strong {
  font-size: 12px;
  font-weight: 500;
}

.annual-deadline-item small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.preview-sidebar {
  position: absolute;
  z-index: 2;
  left: 18px;
  top: 44px;
  width: 64px;
  height: 166px;
  border-radius: 22px;
  background: linear-gradient(180deg, #111a3a, #172550);
  box-shadow: 0 20px 45px rgba(17, 26, 58, 0.22);
}

.preview-sidebar::before,
.preview-sidebar::after {
  content: "";
  position: absolute;
  left: 19px;
  width: 26px;
  height: 26px;
  border-radius: 10px;
  background: rgba(67, 213, 255, 0.18);
}

.preview-sidebar::before {
  top: 24px;
}

.preview-sidebar::after {
  top: 66px;
}

.preview-topline {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.preview-topline span {
  display: block;
  height: 9px;
  border-radius: 999px;
  background: #d8edf7;
}

.preview-topline span:first-child {
  width: 118px;
}

.preview-topline span:last-child {
  width: 58px;
}

.preview-chart {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  align-items: end;
  gap: 8px;
  height: 86px;
  margin-bottom: 18px;
}

.preview-chart i {
  display: block;
  border-radius: 8px 8px 3px 3px;
  background: linear-gradient(180deg, #7ddcff, #139bd0);
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 7px;
}

.preview-grid span {
  height: 18px;
  border-radius: 6px;
  background: #edf7fb;
}

.preview-grid span:nth-child(3n) {
  background: #d7f0fb;
}

.preview-mobile {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  width: 116px;
  height: 160px;
  border: 1px solid rgba(14, 165, 233, 0.2);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 24px 60px rgba(16, 68, 104, 0.18);
  padding: 18px 14px;
  text-align: center;
}

.preview-mobile div {
  width: 44px;
  height: 44px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: conic-gradient(#16b9e8 0 70%, #e6f7ff 70% 100%);
}

.preview-mobile strong {
  display: block;
  color: #102033;
  font-size: 34px;
  line-height: 1;
}

.preview-mobile span {
  display: block;
  margin-top: 8px;
  color: #718096;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.35;
}

.section-label {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 20px 22px 0;
}

.section-label span {
  color: var(--text);
  font-size: 16px;
  font-weight: 400;
}

.section-label small {
  color: var(--muted);
  font-weight: 400;
}

.panel-heading {
  margin-bottom: 18px;
}

.panel-heading p,
.section-heading p {
  margin: 6px 0 0;
  color: var(--muted);
}

.muted {
  color: var(--muted);
}

.row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
}

.project-form {
  display: grid;
  gap: 14px;
}

label {
  display: grid;
  gap: 7px;
  color: #344054;
  font-size: 13px;
  font-weight: 400;
}

label span {
  color: var(--danger);
}

input,
select,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 10px 11px;
  background: #fff;
  color: var(--text);
}

input::placeholder,
textarea::placeholder {
  color: #b7c0ca;
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  outline: 3px solid var(--primary-soft);
  border-color: var(--primary);
}

textarea {
  resize: vertical;
}

.grid-2,
.grid-3 {
  display: grid;
  gap: 12px;
}

.grid-2 {
  grid-template-columns: 1fr 1fr;
}

.grid-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

button.primary,
button.secondary,
button.danger {
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 8px 13px;
  font-size: 12px;
  font-weight: 400;
}

button.primary {
  color: #fff;
  background: var(--primary);
  box-shadow: none;
}

button.primary:hover {
  background: var(--primary-dark);
}

button.secondary {
  color: #213348;
  background: #fff;
  border-color: var(--line-strong);
}

button.danger {
  color: var(--amber);
  background: #fff;
  border-color: #ead7b7;
}

.hidden {
  display: none !important;
}

.project-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) minmax(170px, 230px) auto;
  grid-template-areas:
    "search search search search"
    "status sort clear .";
  gap: 10px;
  align-items: end;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 14px;
  background: #f8fafb;
}

.project-toolbar label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.project-toolbar label > span {
  color: var(--muted);
  font-size: 11px;
}

.project-search {
  grid-area: search;
  min-width: 0;
}

.project-toolbar label:nth-of-type(2) {
  grid-area: status;
}

.project-toolbar label:nth-of-type(3) {
  grid-area: sort;
}

.clear-search {
  grid-area: clear;
  height: 38px;
  white-space: nowrap;
}

.project-results-meta {
  margin: 12px 2px;
  color: var(--muted);
  font-size: 12px;
}

.load-more-button {
  display: block;
  width: min(320px, 100%);
  margin: 18px auto 0;
}

.summary-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.dashboard-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 18px 24px 20px;
}

.dashboard-card {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 16px;
  background: #fff;
}

.dashboard-card span {
  display: block;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 400;
}

.dashboard-card b {
  display: block;
  margin: 8px 0 4px;
  font-size: 34px;
  line-height: 1;
  font-weight: 300;
  letter-spacing: -0.04em;
}

.dashboard-card small {
  color: var(--muted);
  font-weight: 400;
}

.dashboard-card.danger {
  border-color: #fde7bd;
  background: #fff;
  color: var(--text);
}

.dashboard-card.danger b {
  color: #b45309;
}

.dashboard-card.warn {
  border-color: #fde7bd;
  background: #fff;
  color: var(--text);
}

.dashboard-card.warn b {
  color: #b45309;
}

.dashboard-card.ok {
  border-color: #c8effd;
  background: #fff;
  color: var(--text);
}

.dashboard-card.ok b {
  color: #0369a1;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 0 24px 24px;
}

.dashboard-box {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 16px;
  background: #fff;
}

.dashboard-box h3 {
  margin-bottom: 12px;
}

.dashboard-list {
  display: grid;
  gap: 8px;
}

.dashboard-list-item {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 12px;
  background: #fff;
  color: var(--text);
  text-align: left;
}

.dashboard-list-item:hover {
  border-color: #bfdbfe;
  background: var(--primary-soft);
}

.dashboard-list-item span,
.dashboard-empty {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
}

.dev-panel {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  background: #fbfcff;
}

.dev-panel p {
  margin: 6px 0 0;
  color: var(--muted);
}

.dev-actions {
  display: flex;
  gap: 10px;
}

.summary-card {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 12px;
  background: #fff;
}

.summary-card b {
  display: block;
  margin-top: 4px;
  font-size: 24px;
  font-weight: 300;
}

.summary-card span {
  color: var(--muted);
  font-size: 13px;
}

.project-list {
  display: grid;
  gap: 10px;
}

.project-card {
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  transition: border-color 160ms ease, background 160ms ease;
}

.project-card:hover {
  border-color: #c9eaf7;
  box-shadow: none;
}

.project-select {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  border: 0;
  background: #fff;
  padding: 16px;
  text-align: left;
}

.project-select:hover,
.project-select.active {
  background: #f2fbff;
}

.project-select p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.project-select h3 {
  font-size: 17px;
  font-weight: 400;
}

.missing-badge {
  flex: 0 0 auto;
  align-self: center;
  border-radius: 4px;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 400;
}

.missing-badge.ok {
  color: var(--ok);
  background: #e8f8ff;
}

.missing-badge.ng {
  color: var(--danger);
  background: #fff8eb;
}

.detail-panel {
  margin: 0 24px 32px;
  max-width: 1480px;
  margin-left: auto;
  margin-right: auto;
}

.detail-nav {
  margin-bottom: 18px;
}

.empty-state {
  text-align: center;
  color: var(--muted);
  padding: 42px 20px;
}

.detail-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}

.detail-header p {
  margin: 8px 0 0;
  color: var(--muted);
}

.detail-tabs {
  display: flex;
  gap: 2px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
}

.detail-tabs button {
  flex: 0 0 auto;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 11px 18px;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
}

.detail-tabs button.active {
  border-bottom-color: var(--primary);
  color: var(--text);
}

.detail-tab-panel {
  display: none;
}

.detail-tab-panel.active {
  display: block;
}

.detail-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 14px;
  margin-bottom: 20px;
}

.info-card {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 16px;
  background: #fff;
}

.next-action-card {
  margin-bottom: 20px;
}

.next-action-list {
  margin: 12px 0 0;
  padding-left: 22px;
}

.next-action-list li + li {
  margin-top: 8px;
}

.tab-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.tab-section-heading h3,
.tab-section-heading p {
  margin: 0;
}

.tab-section-heading p {
  margin-top: 6px;
  color: var(--muted);
}

.phase-form {
  display: grid;
  gap: 14px;
}

.phase-form .form-actions {
  position: sticky;
  bottom: 12px;
  z-index: 5;
  justify-content: flex-end;
  border: 1px solid var(--line);
  padding: 12px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 24px rgba(31, 50, 69, 0.08);
}

.phase-form button[type="submit"] {
  min-width: 180px;
}

.phase-form button[type="submit"]:disabled {
  cursor: wait;
  opacity: 0.7;
}

.save-notice {
  position: sticky;
  top: 14px;
  z-index: 8;
  margin-bottom: 12px;
  border: 1px solid #a6dceb;
  border-radius: 4px;
  padding: 11px 14px;
  background: #eaf8fd;
  color: #08769e;
  opacity: 0;
  transform: translateY(-5px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.save-notice.show {
  opacity: 1;
  transform: translateY(0);
}

.route-notice {
  grid-column: 1 / -1;
  border: 1px solid #d9e8ef;
  border-radius: 4px;
  padding: 12px 15px;
  background: #f1f9fc;
  color: #477282;
  font-size: 13px;
}

.app-toast {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 100;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 4px;
  padding: 12px 16px;
  background: #087fc8;
  color: #ffffff;
  box-shadow: 0 14px 34px rgba(6, 70, 118, 0.22);
  font-size: 13px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease;
}

.app-toast.visible {
  opacity: 1;
  transform: translateY(0);
}

.form-section {
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 18px;
  background: #fff;
}

.form-section h4 {
  margin: 0 0 15px;
  font-size: 14px;
  font-weight: 500;
}

.form-section > label {
  display: grid;
  gap: 7px;
  margin-top: 14px;
}

.derived-fields {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 14px;
}

.derived-fields div {
  border: 1px solid var(--line);
  padding: 13px;
  background: #f8fafb;
}

.derived-fields span,
.derived-fields strong {
  display: block;
}

.derived-fields span {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 11px;
}

.derived-fields strong {
  font-size: 15px;
  font-weight: 400;
}

.amount-check-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.consistency-result {
  margin-top: 14px;
  border-left: 3px solid var(--line-strong);
  padding: 11px 13px;
  background: #f8fafb;
  font-size: 13px;
}

.consistency-result.ok {
  border-left-color: var(--blue);
  color: var(--blue);
  background: var(--blue-soft);
}

.consistency-result.warning {
  border-left-color: var(--amber);
  color: var(--amber);
  background: var(--amber-soft);
}

.ai-check-heading {
  align-items: center;
}

.ai-check-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
  border: 1px solid var(--line);
  border-left: 4px solid #2798bf;
  background: linear-gradient(110deg, #f5fbfe, #fff);
}

.ai-check-summary.warning {
  border-left-color: #d99a2b;
}

.ai-check-summary.error {
  border-left-color: #c76565;
}

.ai-check-summary > div {
  display: grid;
  gap: 5px;
  padding: 18px;
  border-right: 1px solid var(--line);
}

.ai-check-summary > div:last-child {
  border-right: 0;
}

.ai-check-summary span {
  color: var(--muted);
  font-size: 11px;
}

.ai-check-summary strong {
  font-size: 17px;
  font-weight: 500;
}

.ai-check-list {
  display: grid;
  gap: 9px;
}

.ai-check-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  padding: 15px;
  background: #fff;
  width: 100%;
  color: var(--text);
  text-align: left;
  font: inherit;
}

.ai-check-item[data-ai-target]:not([data-ai-target=""]) {
  cursor: pointer;
}

.ai-check-item[data-ai-target]:not([data-ai-target=""]):hover {
  border-color: #9fd9ec;
  background: #f7fcfe;
  transform: translateY(-1px);
}

.ai-check-mark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #e8f7fc;
  color: #1689b4;
  font-size: 13px;
  font-weight: 500;
}

.ai-check-item.warning .ai-check-mark {
  background: #fff5df;
  color: #b77914;
}

.ai-check-item.error .ai-check-mark {
  background: #fff0f0;
  color: #b24e4e;
}

.ai-check-item.info .ai-check-mark {
  background: #f0f3f6;
  color: #677888;
}

.ai-check-item h4,
.ai-check-item p {
  margin: 0;
}

.ai-check-item h4 {
  font-size: 14px;
  font-weight: 500;
}

.ai-check-item p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.ai-check-label {
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.ai-check-caution {
  margin: 16px 0 0;
  border-left: 3px solid #91a8b3;
  padding: 10px 13px;
  background: #f7f9fa;
  color: #637680;
  font-size: 12px;
  line-height: 1.6;
}

.ai-check-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  border: 1px dashed #cbdde5;
  padding: 48px 20px;
  background: linear-gradient(135deg, #f5fbfe, #fff);
  text-align: center;
}

.ai-check-empty > span {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #ddf4fc;
  color: #1689b4;
  font-size: 15px;
  font-weight: 500;
}

.ai-check-empty h4,
.ai-check-empty p {
  margin: 0;
}

.ai-check-empty h4 {
  font-weight: 500;
}

.ai-check-empty p {
  color: var(--muted);
  font-size: 12px;
}

.internal-document-section {
  margin-top: 28px;
  border: 1px solid #d9e1e8;
  padding: 18px;
  background: #f7f9fb;
}

.internal-document-step > summary {
  background: linear-gradient(110deg, #f4f7f9 0%, #edf3f6 55%, #fff 100%);
}

.internal-document-step .document-step-number,
.internal-document-step .document-step-progress b {
  color: #657c88;
}

.document-review {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.document-review label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
}

.document-review .review-note,
.document-review button {
  grid-column: 1 / -1;
}

.pilot-ai-review {
  grid-template-columns: 1fr;
}

.pilot-ai-result {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  border: 1px solid #cfe8f2;
  padding: 11px;
  background: #f5fbfd;
}

.pilot-ai-result.approved {
  border-color: #bfe5f2;
  background: #eefaff;
}

.pilot-ai-result.returned {
  border-color: #f0d0d0;
  background: #fff7f7;
}

.pilot-ai-result.waiting {
  border-color: var(--line);
  background: #f8fafb;
}

.pilot-ai-badge {
  border-radius: 3px;
  padding: 4px 7px;
  background: #dff4fb;
  color: #147da4;
  font-size: 10px;
  white-space: nowrap;
}

.pilot-ai-result strong,
.pilot-ai-result p {
  margin: 0;
}

.pilot-ai-result strong {
  font-size: 13px;
  font-weight: 500;
}

.pilot-ai-result p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.pilot-return-note {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
}

.pilot-review-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.pilot-review-actions button {
  grid-column: auto;
}

.history-list {
  border-top: 1px solid var(--line);
}

.history-list article {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  padding: 14px 0;
}

.history-list time {
  color: var(--muted);
  font-size: 12px;
}

.history-list p {
  margin: 0;
}


dl {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 10px 12px;
  margin: 14px 0 0;
}

dt {
  color: var(--muted);
}

dd {
  margin: 0;
  font-weight: 400;
}

.missing-list {
  display: grid;
  gap: 4px;
  margin: 12px 0 16px;
  padding: 0;
  list-style: none;
}

.missing-summary-heading {
  display: grid;
  gap: 6px;
  margin: 12px 0 16px;
  border: 1px solid #bee8f7;
  border-radius: 5px;
  padding: 14px 16px;
  background: linear-gradient(120deg, #eaf9fe 0%, #d8f3fc 55%, #f4fcff 100%);
}

.missing-summary-heading strong {
  color: #096f98;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.missing-summary-heading span {
  color: #5d8292;
  font-size: 12px;
  line-height: 1.6;
}

.missing-list button {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 9px 2px;
  background: transparent;
  color: var(--text);
  text-align: left;
}

.missing-document-name {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.missing-document-name b {
  display: grid;
  place-items: center;
  flex: 0 0 26px;
  width: 26px;
  height: 22px;
  border-radius: 3px;
  background: #eaf8fd;
  color: var(--primary-dark);
  font-size: 10px;
  font-weight: 500;
}

.missing-list button:hover {
  color: var(--primary-dark);
  background: var(--primary-soft);
}

.missing-list button span {
  flex: 0 0 auto;
  color: var(--primary-dark);
  font-size: 11px;
}

.missing-upload-button {
  width: 100%;
}

.document-row.document-focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(23, 174, 226, 0.14);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.complete-message {
  margin: 12px 0 0;
  color: var(--blue);
  font-weight: 400;
}

.document-section {
  border-top: 1px solid var(--line);
  padding-top: 20px;
}

.section-heading {
  margin-bottom: 14px;
}

.document-steps {
  display: grid;
  gap: 10px;
}

.document-step {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.document-step[open] {
  border-color: #c6e8f4;
  box-shadow: 0 8px 24px rgba(38, 88, 112, 0.06);
}

.document-step > summary {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto 18px;
  gap: 16px;
  align-items: center;
  min-height: 78px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(110deg, #f8fcfe 0%, #eef9fd 55%, #fff 100%);
}

.document-step > summary::-webkit-details-marker {
  display: none;
}

.document-step.complete > summary {
  background: linear-gradient(110deg, #f6fbfd 0%, #edf8fc 55%, #fff 100%);
}

.document-step-number {
  color: #1689b4;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.document-step-title {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.document-step-title strong {
  color: var(--text);
  font-size: 17px;
  font-weight: 500;
}

.document-step-title small,
.document-step-progress small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

.document-step-progress {
  display: grid;
  gap: 2px;
  min-width: 76px;
  text-align: right;
}

.document-step-progress b {
  color: #147da4;
  font-size: 17px;
  font-weight: 500;
}

.document-step-chevron {
  width: 9px;
  height: 9px;
  border-right: 1.5px solid #7391a0;
  border-bottom: 1.5px solid #7391a0;
  transform: rotate(45deg);
  transition: transform 160ms ease;
}

.document-step[open] .document-step-chevron {
  transform: rotate(225deg);
}

.document-step-content {
  border-top: 1px solid #dcecf2;
  padding: 14px;
  background: #fbfdfe;
}

.document-checklist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 12px;
}

.document-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 12px;
  min-height: 230px;
}

.doc-card-head {
  display: block;
}

.doc-heading {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.document-row.missing {
  border-color: #fde7bd;
  background: #fffaf1;
}

.document-row.done {
  border-color: #c8effd;
  background: #f0fbff;
}

.doc-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-self: start;
  min-height: 30px;
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 400;
}

.document-row.missing .doc-status {
  color: var(--danger);
  background: #fff;
  border: 1px solid #fde7bd;
}

.document-row.done .doc-status {
  color: var(--ok);
  background: #fff;
  border: 1px solid #c8effd;
}

.doc-status-icon {
  display: none;
}

.document-row.missing .doc-status-icon {
  background: #f59e0b;
}

.document-row.done .doc-status-icon {
  background: #0ea5e9;
}

.doc-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.doc-title-row h4 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.doc-title-row span {
  border-radius: 4px;
  padding: 3px 8px;
  color: var(--amber);
  background: #fff8eb;
  font-size: 12px;
  font-weight: 400;
}

.doc-main p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
  min-height: 40px;
}

.uploaded-files {
  display: grid;
  gap: 5px;
  margin-top: 7px;
  min-height: 52px;
}

.file-chip {
  display: flex;
  gap: 9px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 8px;
  background: #fff;
  font-size: 13px;
}

.file-preview {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 78px;
  height: 98px;
  border-radius: 3px;
  background: #eef4ff;
  color: var(--primary);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  overflow: hidden;
}

.file-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.file-preview-pdf {
  background: #f1f5f9;
  color: #334155;
}

.file-preview-csv,
.file-preview-xls {
  background: #e0f2fe;
  color: #0369a1;
}

.file-preview-doc {
  background: #eef4ff;
  color: var(--primary);
}

.file-preview-document {
  display: block;
  background: #fff;
  color: inherit;
}

.file-preview-frame {
  width: 220px;
  height: 280px;
  border: 0;
  transform: scale(0.36);
  transform-origin: top left;
  pointer-events: none;
  background: #fff;
}

.file-preview-text {
  place-items: start;
  padding: 7px;
  background: #fff;
  color: var(--text);
  text-align: left;
  font-size: 8px;
  line-height: 1.25;
  white-space: pre-wrap;
  word-break: break-all;
}

.file-link {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 2px;
  color: var(--text);
  text-decoration: none;
}

.file-link strong,
.file-link span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.file-link span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.file-chip button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--danger);
  font-weight: 400;
}

.upload-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  align-items: center;
  margin-top: auto;
}

.upload-form input[type="file"] {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.file-picker {
  display: block;
  width: 100%;
  border: 1px dashed #cbddea;
  border-radius: 4px;
  padding: 9px 12px;
  background: #fff;
  color: #61758a;
  text-align: center;
  font-size: 13px;
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    height: auto;
    padding: 10px 14px;
  }

  .sidebar-brand {
    display: flex;
    justify-items: start;
    margin-bottom: 0;
  }

  .sidebar-nav {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    justify-items: end;
  }

  .sidebar-link {
    width: 42px;
    height: 42px;
    border-radius: 4px;
  }

  .sidebar-link b,
  .sidebar-foot {
    display: none;
  }

  .brand-mark {
    width: 40px;
    height: 40px;
  }

  .app-header {
    flex-direction: column;
  }

  .app-header,
  .layout,
  .detail-header,
  .detail-grid,
  .document-row,
  .row {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .layout {
    display: grid;
  }

  .summary-cards,
  .dashboard-cards,
  .dashboard-grid,
  .annual-preparation-grid,
  .annual-checklist,
  .annual-phase-task-list,
  .project-toolbar,
  .grid-2,
  .grid-3,
  .derived-fields,
  .amount-check-grid,
  .document-review {
    grid-template-columns: 1fr;
  }

  .annual-phase-task {
    grid-template-columns: 1fr;
  }

  .annual-schedule {
    padding: 22px 16px 24px;
  }

  .annual-schedule-heading,
  .annual-focus {
    flex-direction: column;
    align-items: stretch;
  }

  .annual-cycle-badge {
    align-self: flex-start;
    text-align: left;
  }

  .annual-focus > b {
    align-self: flex-end;
  }

  .annual-timeline {
    grid-template-columns: 1fr;
  }

  .annual-timeline-item {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .annual-timeline-item:last-child {
    border-bottom: 0;
  }

  .project-toolbar {
    grid-template-areas:
      "search"
      "status"
      "sort"
      "clear";
  }

  .document-review .review-note,
  .document-review button {
    grid-column: auto;
  }

  .ai-check-summary {
    grid-template-columns: 1fr 1fr;
  }

  .ai-check-summary > div:nth-child(2) {
    border-right: 0;
  }

  .ai-check-summary > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .ai-check-item {
    grid-template-columns: 30px 1fr;
  }

  .ai-check-label {
    grid-column: 2;
  }

  .history-list article {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .home-hero,
  .home-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .document-checklist {
    grid-template-columns: 1fr;
  }

  .document-step > summary {
    grid-template-columns: 1fr auto 16px;
    gap: 10px;
    min-height: 70px;
    padding: 12px;
  }

  .document-step-number {
    display: none;
  }

  .document-step-title small {
    display: none;
  }
}
/* Client package presentation override */
.zuiko-client-board{border:1px solid #cfe7f4;border-radius:8px;background:#fff;overflow:hidden}
.zuiko-client-head{padding:28px 32px;border-bottom:1px solid #d9edf6;background:linear-gradient(180deg,#f6fdff,#fff)}
.zuiko-client-head h2{margin:6px 0 8px;font-size:28px;font-weight:300;letter-spacing:-.04em;color:#1f2b38}
.zuiko-client-head p{margin:0;color:#66798d;line-height:1.7}
.zuiko-package-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:28px 32px;background:#fff;border-bottom:1px solid #d9edf6}
.zuiko-package{min-width:0;border-radius:10px;padding:22px;display:grid;gap:16px;box-shadow:0 12px 28px rgba(9,67,112,.08)}
.zuiko-package[role="link"]{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.zuiko-package[role="link"]:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(9,67,112,.14)}
.zuiko-package[role="link"]:focus-visible{outline:3px solid rgba(20,174,231,.35);outline-offset:3px}
.zuiko-package.keishin{background:linear-gradient(135deg,#effbff 0%,#fff 72%);border:1px solid #bfeeff;border-top:5px solid #14aee7;color:#263543}
.zuiko-package.bid{background:linear-gradient(135deg,#083b78 0%,#086bb8 54%,#08a7dc 100%);border:1px solid #075c9d;border-top:5px solid #052e60;color:#fff;box-shadow:0 16px 34px rgba(5,75,139,.24)}
.zuiko-package-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.zuiko-package .eyebrow{margin:0 0 6px}
.zuiko-package.bid .eyebrow{color:#fff}
.zuiko-package h3{margin:0 0 8px;font-size:22px;font-weight:400;line-height:1.35}
.zuiko-package p{margin:0;font-size:13px;line-height:1.65;color:#63778b}
.zuiko-package.bid p{color:#d9f2ff}
.zuiko-score{font-size:36px;line-height:1;font-weight:300;white-space:nowrap;color:#078bc8}
.zuiko-package.bid .zuiko-score{color:#fff}
.zuiko-progress{height:8px;border-radius:99px;background:#e8f2f7;overflow:hidden}
.zuiko-package.bid .zuiko-progress{background:rgba(255,255,255,.24)}
.zuiko-progress span{display:block;height:100%;background:linear-gradient(90deg,#18aee2,#0b83d5)}
.zuiko-package.bid .zuiko-progress span{background:linear-gradient(90deg,#fff,#90e8ff)}
.zuiko-meta{display:flex;flex-wrap:wrap;gap:7px}
.zuiko-meta button,.zuiko-condition-chip{border:1px solid #bdebf9;border-radius:999px;padding:5px 10px;background:#f7fdff;color:#147da4;font-size:12px;line-height:1.25;white-space:nowrap}
.zuiko-meta button{cursor:pointer}
.zuiko-meta button:hover{background:#e9faff}
.zuiko-meta button.done{border-color:#d8e1e8;background:#f1f5f8;color:#7c8da1}
.zuiko-meta button.pending{border-color:#f2ddbd;background:#fff3d8;color:#9b6812}
.zuiko-meta button.missing{border-color:#f4caca;background:#ffe9e9;color:#bc3b3b}
.zuiko-meta button.deadline{border-color:#bdebf9;background:#f7fdff;color:#147da4}
.zuiko-package.bid .zuiko-meta button{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff}
.zuiko-package.bid .zuiko-meta button:last-child{background:#fff;color:#075c9d;border-color:#fff}
.zuiko-condition-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px 12px;padding:16px 32px 24px;background:#fff}
.zuiko-condition-chip{display:flex;align-items:center;min-height:34px;overflow:hidden;text-overflow:ellipsis}
.zuiko-condition-chip.off{background:#f9fbfd;border-color:#cfd8e3;color:#56687a}
.zuiko-phase-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:22px 32px 28px;background:#fff}
.zuiko-phase{border:1px solid #dce8f0;border-radius:8px;padding:18px;background:#fff}
.zuiko-phase h4{margin:0 0 10px;font-size:15px;font-weight:400}
.zuiko-phase ul{margin:0;padding-left:18px;color:#61758a;font-size:13px;line-height:1.8}
.zuiko-doc-section{border:1px solid #dce8f0;border-radius:8px;background:#fff;overflow:hidden}
.zuiko-doc-head{display:flex;justify-content:space-between;gap:18px;padding:24px 28px;border-bottom:1px solid #e5eef4}
.zuiko-doc-head h2{margin:4px 0 6px;font-size:26px;font-weight:300}
.zuiko-head-actions{display:grid;justify-items:end;gap:6px;min-width:150px}
.zuiko-head-actions small{color:#61758a;font-size:11px;white-space:nowrap}
.zuiko-package-export-link{border:1px solid #129dd1;border-radius:6px;background:#129dd1;color:#fff;padding:8px 12px;font-size:12px;cursor:pointer}
.timeline-top-board{border:1px solid #dce8f0;border-radius:8px;background:#fff;overflow:hidden}
.timeline-top-head{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;align-items:center;padding:24px 28px;border-bottom:1px solid #e5eef4;background:linear-gradient(180deg,#f7fdff,#fff)}
.timeline-top-head h2{margin:4px 0 6px;font-size:28px;font-weight:300;color:#1f2b38;letter-spacing:-.04em}
.timeline-top-head p{margin:0;color:#66798d;line-height:1.65}
.timeline-countdown{display:grid;gap:4px;justify-items:start;border:1px solid #bdebf9;border-radius:10px;background:#f7fdff;padding:14px 16px;text-align:left;color:#147da4}
.timeline-countdown span{font-size:11px;color:#61758a}
.timeline-countdown strong{font-size:28px;font-weight:300;line-height:1;color:#087fc8}
.timeline-countdown small{font-size:11px;color:#61758a;line-height:1.4}
.timeline-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 28px;border-bottom:1px solid #e5eef4;background:#fbfdfe}
.timeline-stage{position:relative;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start;min-height:118px;border:1px solid #dce8f0;border-radius:10px;background:#fff;padding:16px;text-align:left;color:#263543;cursor:pointer}
.timeline-stage strong{grid-column:1 / -1;font-size:17px;font-weight:400;line-height:1.35}
.timeline-stage small{grid-column:1 / -1;color:#61758a;font-size:12px}
.timeline-stage em{grid-column:1 / -1;color:#7a8a9b;font-size:12px;font-style:normal}
.timeline-step{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#eef4f8;color:#61758a;font-size:12px}
.timeline-status{justify-self:end;border-radius:999px;padding:5px 9px;font-size:11px;background:#eef4f8;color:#61758a}
.timeline-stage.done{border-color:#bdebd2;background:#fbfffd}
.timeline-stage.done .timeline-step,.timeline-stage.done .timeline-status{background:#e7f8ee;color:#217847}
.timeline-stage.current{border-color:#9ed7ef;background:#f7fdff;box-shadow:0 10px 26px rgba(20,134,177,.08)}
.timeline-stage.current .timeline-step,.timeline-stage.current .timeline-status{background:#eaf8fe;color:#1486b1}
.timeline-stage.next{border-color:#d8e1e8;background:#f8fafc;color:#7a8a9b}
.timeline-stage.next strong{color:#56687a}
.timeline-company-strip{display:flex;flex-wrap:wrap;gap:8px;padding:12px 28px;border-bottom:1px solid #e5eef4;background:#fff}
.timeline-company-strip span{border:1px solid #d8e1e8;border-radius:999px;background:#f8fafc;color:#56687a;padding:6px 10px;font-size:12px;line-height:1.2}
.timeline-now-card{padding:22px 28px 24px}
.timeline-now-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.timeline-now-head h3{margin:4px 0 6px;font-size:22px;font-weight:300;color:#1f2b38}
.timeline-now-head p{margin:0;color:#66798d;line-height:1.6}
.timeline-now-count{display:grid;justify-items:end;color:#61758a}
.timeline-now-count span{font-size:11px}
.timeline-now-count strong{font-size:24px;font-weight:300;color:#217847}
.timeline-task-list{display:grid;gap:8px}
.timeline-task{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #f2ddbd;border-radius:8px;background:#fffaf0;padding:12px 14px;text-align:left;color:#263543}
.timeline-task span{width:8px;height:8px;border-radius:999px;background:#d69722}
.timeline-task b{font-size:14px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-task small{color:#61758a;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-task.missing{border-color:#f2ddbd;background:#fffaf0}
.timeline-task.pending{border-color:#f2ddbd;background:#fffaf0}
.timeline-empty-task{border:1px solid #bdebd2;border-radius:8px;background:#fbfffd;padding:14px;color:#217847}
.timeline-empty-task strong{display:block;font-weight:400;margin-bottom:4px}
.timeline-empty-task small{color:#61758a}
.timeline-now-actions,.timeline-stage-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.timeline-primary,.timeline-secondary,.timeline-back{border-radius:6px;padding:10px 14px;font-size:13px;cursor:pointer}
.timeline-primary{border:1px solid #129dd1;background:#129dd1;color:#fff}
.timeline-secondary,.timeline-back{border:1px solid #d8e1e8;background:#fff;color:#147da4}
.timeline-stage-page{border:1px solid #dce8f0;border-radius:8px;background:#fff;padding:20px 24px 24px}
.timeline-back{margin-bottom:12px}
.timeline-stage-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border:1px solid #dce8f0;border-radius:10px;background:#fbfdfe;padding:20px;margin-bottom:16px}
.timeline-stage-head h2{margin:4px 0 6px;font-size:26px;font-weight:300;color:#1f2b38}
.timeline-stage-head p{margin:0;color:#66798d;line-height:1.65}
.timeline-stage-head.done{border-color:#bdebd2;background:#fbfffd}
.timeline-stage-head.current{border-color:#9ed7ef;background:#f7fdff}
.timeline-stage-head.next{border-color:#d8e1e8;background:#f8fafc}
.timeline-stage-meta{display:grid;gap:4px;justify-items:end;min-width:190px}
.timeline-stage-meta span,.timeline-stage-meta small{color:#61758a;font-size:12px}
.timeline-stage-meta strong{font-size:24px;font-weight:300;color:#1486b1}
.timeline-stage-head.done .timeline-stage-meta strong{color:#217847}
.timeline-stage-head.next .timeline-stage-meta strong{color:#7a8a9b}
.timeline-doc-list{display:grid;gap:8px}
.timeline-doc-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:12px;align-items:center;border:1px solid #d8e1e8;border-radius:8px;background:#f8fafc;padding:12px 14px}
.timeline-doc-row b{display:block;font-size:14px;font-weight:400;color:#263543}
.timeline-doc-row small{display:block;margin-top:3px;font-size:12px;color:#61758a}
.timeline-doc-row span{justify-self:end;border-radius:999px;padding:6px 10px;font-size:12px;background:#eef4f8;color:#61758a}
.timeline-doc-row.done{border-color:#bdebd2;background:#fbfffd}
.timeline-doc-row.done span{background:#e7f8ee;color:#217847}
.timeline-doc-row.pending{border-color:#f2ddbd;background:#fffaf0}
.timeline-doc-row.pending span{background:#fff3d8;color:#9b6812}
.timeline-empty-next{display:grid;gap:10px;border:1px solid #d8e1e8;border-radius:10px;background:#f8fafc;padding:20px;color:#56687a}
.timeline-empty-next strong{font-weight:400;color:#263543}
.timeline-empty-next p{margin:0;color:#61758a;line-height:1.7}
.package-export-page{border:1px solid #dce8f0;border-radius:8px;background:#fff;padding:20px 24px 24px}
.package-export-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border:1px solid #dce8f0;border-radius:10px;background:#fbfdfe;padding:20px;margin-bottom:16px}
.package-export-head h2{margin:4px 0 6px;font-size:26px;font-weight:300;color:#1f2b38}
.package-export-head p{margin:0;color:#66798d;line-height:1.65}
.package-export-count{display:grid;justify-items:end;min-width:130px;color:#61758a}
.package-export-count span{font-size:12px}
.package-export-count strong{font-size:30px;font-weight:300;color:#1486b1}
.package-folder-view{display:grid;gap:10px}
.package-folder{border:1px solid #e1ebf2;border-radius:8px;background:#fff;overflow:hidden}
.package-folder summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#f8fbfd;cursor:pointer;color:#263543}
.package-folder summary span{font-size:14px}
.package-folder summary b{font-size:12px;font-weight:400;color:#1486b1}
.package-folder div{display:grid;gap:0;padding:6px 14px 10px}
.package-folder p{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;margin:0;padding:7px 0;border-bottom:1px solid #edf3f7;color:#61758a;font-size:13px}
.package-folder p:last-child{border-bottom:0}
.package-folder p span{color:#1486b1}
.package-export-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.package-export-result{display:grid;gap:6px;margin-top:12px;border:1px solid #d8e1e8;border-radius:8px;background:#f8fafc;padding:12px 14px;color:#61758a}
.package-export-result strong{font-weight:400;color:#263543}
.package-export-result span{font-size:12px}
.package-export-result a{display:inline-flex;align-items:center;justify-content:center;width:max-content;border:1px solid #129dd1;border-radius:6px;background:#129dd1;color:#fff;text-decoration:none;padding:9px 13px;font-size:13px}
.bid-target-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;padding:20px 28px;border-bottom:1px solid #e5eef4;background:#fbfdfe}
.bid-target-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bid-target-fields label{display:grid;gap:6px;color:#61758a;font-size:12px}
.bid-target-fields select{width:100%;border:1px solid #d8e4ec;border-radius:6px;background:#fff;color:#263543;padding:10px 12px;font-size:14px}
.bid-target-summary{border:1px solid #d7edf7;border-radius:8px;background:#fff;padding:12px 14px}
.bid-target-summary span{display:block;color:#61758a;font-size:12px;margin-bottom:4px}
.bid-target-summary strong{display:block;color:#263543;font-size:18px;font-weight:400;margin-bottom:4px}
.bid-target-summary small{display:block;color:#61758a;font-size:12px;line-height:1.5}
.bid-target-summary em{display:inline-block;margin-top:8px;border-radius:999px;background:#fff3d8;color:#9b6812;padding:5px 9px;font-style:normal;font-size:12px}
.annual-summary-block{padding:0 32px 32px;background:#fff}
.annual-summary-heading{margin:0 0 14px}
.annual-summary-heading h3{margin:0 0 5px;font-size:18px;font-weight:400;color:#263543}
.annual-summary-heading p{margin:0;color:#61758a;font-size:13px}
.annual-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.annual-summary-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #d7edf7;border-radius:10px;background:#fbfeff;padding:18px;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.annual-summary-card:hover{transform:translateY(-2px);border-color:#9ed7ef;box-shadow:0 14px 30px rgba(9,67,112,.10)}
.annual-summary-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf8fe;font-size:22px}
.annual-summary-main b{display:block;margin-bottom:6px;color:#263543;font-size:14px;font-weight:400}
.annual-summary-main strong{display:block;color:#1486b1;font-size:24px;font-weight:400;line-height:1.1}
.annual-summary-main small{display:block;margin-top:7px;color:#263543;font-size:13px}
.annual-summary-main em{display:block;margin-top:4px;color:#61758a;font-size:12px;font-style:normal;line-height:1.4}
.annual-summary-arrow{color:#1486b1;font-size:20px}
.annual-summary-card.ok{border-color:#bdebd2;background:#f8fffb}
.annual-summary-card.ok .annual-summary-main strong{color:#217847}
.annual-summary-card.warn{border-color:#f2ddbd;background:#fffaf0}
.annual-summary-card.warn .annual-summary-main strong{color:#9b6812}
.annual-summary-card.ng{border-color:#f4caca;background:#fff8f8}
.annual-summary-card.ng .annual-summary-main strong{color:#bc3b3b}
.annual-sub-page{padding-bottom:20px}
.form-output-panel{margin:0 28px 22px;border:1px solid #d7edf7;border-radius:8px;background:#fbfeff;overflow:hidden}
.form-output-head{display:flex;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #dff0f8}
.form-output-head h3{margin:4px 0 6px;font-size:20px;font-weight:400}
.form-output-head p{margin:0;color:#61758a;font-size:13px;line-height:1.6}
.form-output-total{min-width:210px;border-radius:8px;padding:12px 14px;background:#fff;border:1px solid #dce8f0;text-align:right}
.form-output-total span,.form-output-total small{display:block;color:#61758a;font-size:12px}
.form-output-total strong{display:block;margin:3px 0;font-size:24px;color:#147da4}
.form-output-total.warn strong{color:#9b6812}
.form-output-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px;border-bottom:1px solid #e8f2f8;background:#fff}
.form-output-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 20px}
.form-output-grid article{min-width:0;border:1px solid #e1ebf2;border-radius:8px;background:#fff;padding:14px}
.form-output-grid h4{margin:0 0 10px;font-size:14px;font-weight:400;color:#263543}
.form-output-table-wrap{overflow:auto}
.form-output-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
.form-output-table th,.form-output-table td{border-bottom:1px solid #edf3f7;padding:7px 8px;text-align:right}
.form-output-table th:first-child,.form-output-table td:first-child{text-align:left}
.form-output-table th{color:#61758a;font-weight:400;background:#f8fbfd}
.form-consistency{margin:0 20px 18px;border-radius:8px;padding:12px 14px;display:flex;gap:10px;align-items:center;background:#f0fbf4;color:#217847;border:1px solid #caeed7}
.form-consistency.ng{background:#fff5f5;color:#bc3b3b;border-color:#f4caca}
.amount-consistency-panel{margin:0 20px 18px;border:1px solid #e1ebf2;border-radius:8px;background:#fff;padding:14px}
.amount-consistency-panel h4{margin:0 0 4px;font-size:14px;font-weight:400;color:#263543}
.amount-consistency-panel p{margin:0 0 10px;color:#61758a;font-size:12px}
.amount-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px}
.amount-summary-grid>div{border:1px solid #e1ebf2;border-radius:8px;background:#fbfdfe;padding:10px 12px}
.amount-summary-grid span{display:block;color:#61758a;font-size:12px}
.amount-summary-grid strong{display:block;margin-top:4px;color:#1486b1;font-size:20px;font-weight:400}
.amount-summary-grid .ok strong{color:#217847}
.amount-summary-grid .warn{border-color:#f2ddbd;background:#fffaf0}
.amount-summary-grid .warn strong{color:#9b6812}
.amount-summary-grid .ng{border-color:#f4caca;background:#fff8f8}
.amount-summary-grid .ng strong{color:#bc3b3b}
.amount-consistency-list{display:grid;gap:7px}
.amount-consistency-row{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:8px;align-items:center;border:1px solid #edf3f7;border-radius:6px;padding:9px 10px}
.amount-consistency-row span{justify-self:end;border-radius:999px;padding:4px 8px;font-size:11px;background:#fff1d8;color:#9b6812}
.amount-consistency-row.ng{border-color:#f4caca;background:#fff8f8}
.amount-consistency-row.ng span{background:#ffe9e9;color:#bc3b3b}
.amount-consistency-row small{grid-column:1 / -1;color:#61758a}
.amount-consistency-ok{border-radius:6px;background:#f0fbf4;color:#217847;border:1px solid #caeed7;padding:10px 12px;font-size:13px}
.top-ten-panel{margin:0 20px 18px;border:1px solid #d7edf7;border-radius:8px;background:#fff;padding:14px}
.top-ten-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}
.top-ten-head h4{margin:0 0 4px;font-size:14px;font-weight:400;color:#263543}
.top-ten-head p{margin:0;color:#61758a;font-size:12px;line-height:1.6}
.top-ten-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.top-ten-upload{border:1px solid #9ed7ef;border-radius:6px;padding:9px 12px;color:#147da4;background:#f7fdff;font-size:12px;white-space:nowrap;cursor:pointer}
.top-ten-upload.primary{background:#129dd1;border-color:#129dd1;color:#fff}
.top-ten-clear{border:1px solid #d8e1e8;border-radius:6px;background:#fff;color:#61758a;padding:9px 12px;font-size:12px;cursor:pointer}
.top-ten-import-status{display:flex;gap:10px;align-items:flex-start;border:1px solid #e1ebf2;border-radius:8px;background:#fbfdfe;padding:11px 12px;margin-bottom:10px}
.top-ten-import-status>span{flex:0 0 auto;border-radius:999px;padding:5px 10px;font-size:12px;line-height:1;color:#61758a;background:#edf3f7}
.top-ten-import-status strong{display:block;font-size:14px;font-weight:400;color:#263543;line-height:1.45}
.top-ten-import-status small{display:block;margin-top:3px;font-size:12px;line-height:1.45;color:#61758a}
.top-ten-import-status.imported{border-color:#bdebd2;background:#f2fbf6}
.top-ten-import-status.imported>span{background:#24a35a;color:#fff}
.top-ten-import-status.warning{border-color:#f2ddbd;background:#fffaf0}
.top-ten-import-status.warning>span{background:#d8941b;color:#fff}
.top-ten-import-status.fallback{border-color:#bfe4f3;background:#f2fbff}
.top-ten-import-status.fallback>span{background:#129dd1;color:#fff}
.top-ten-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.top-ten-summary>div{border:1px solid #e1ebf2;border-radius:8px;background:#fbfdfe;padding:10px 12px;min-height:72px}
.top-ten-summary span{display:block;margin-bottom:4px;color:#61758a;font-size:11px}
.top-ten-summary strong{display:block;color:#263543;font-size:17px;font-weight:400;line-height:1.25}
.top-ten-summary small{display:block;margin-top:5px;color:#7a8a9b;font-size:11px;line-height:1.4}
.top-ten-stats{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.top-ten-stats span{border:1px solid #e1ebf2;border-radius:999px;background:#f8fbfd;padding:5px 9px;color:#61758a;font-size:12px}
.top-ten-stats span.warn{border-color:#f2ddbd;background:#fff3d8;color:#9b6812}
.split-warning{display:grid;gap:3px;border:1px solid #f2ddbd;background:#fffaf0;color:#9b6812;border-radius:6px;padding:9px 10px;margin-bottom:12px}
.split-warning strong{font-weight:400}
.split-warning span{font-size:12px}
.top-ten-detail{border:1px solid #e1ebf2;border-radius:8px;background:#fff;overflow:hidden}
.top-ten-detail>summary{cursor:pointer;padding:10px 12px;color:#1486b1;background:#f8fbfd;font-size:13px}
.top-ten-detail[open]>summary{border-bottom:1px solid #e1ebf2}
.top-ten-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.top-ten-detail .top-ten-grid{padding:12px}
.top-ten-grid article{min-width:0;border:1px solid #e1ebf2;border-radius:8px;background:#fbfdfe;padding:12px}
.top-ten-grid h5{margin:0 0 10px;font-size:13px;font-weight:400;color:#263543}
.top-ten-list{display:grid;gap:8px}
.top-ten-empty{margin:0;color:#7a8a9b;font-size:12px;line-height:1.6}
.top-ten-list details{border:1px solid #e7edf3;border-radius:6px;background:#fff;overflow:hidden}
.top-ten-list summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;padding:8px 10px;color:#1486b1;font-size:12px}
.top-ten-table{width:100%;border-collapse:collapse;font-size:11px}
.top-ten-table th,.top-ten-table td{border-top:1px solid #edf3f7;padding:6px 7px;text-align:left;vertical-align:top}
.top-ten-table th{background:#f8fbfd;color:#61758a;font-weight:400}
.top-ten-table td:nth-child(1),.top-ten-table td:nth-child(4){white-space:nowrap}
.top-ten-table tr.split td{background:#fffaf0}
.evidence-page{margin:0 20px 20px}
.evidence-head,.evidence-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border:1px solid #d7edf7;border-radius:8px;background:#fff;padding:16px;margin-bottom:12px}
.evidence-head h2,.evidence-detail-head h2{margin:0 0 6px;font-size:20px;font-weight:400;color:#263543}
.evidence-head p,.evidence-detail-head p{margin:0;color:#61758a;font-size:13px;line-height:1.6}
.evidence-head button[disabled]{opacity:.45;cursor:not-allowed}
.evidence-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.evidence-summary>div{border:1px solid #d7edf7;border-radius:8px;background:#fbfdfe;padding:13px 14px}
.evidence-summary span{display:block;color:#61758a;font-size:12px;margin-bottom:4px}
.evidence-summary strong{display:block;color:#1486b1;font-size:24px;font-weight:400;line-height:1.1}
.evidence-summary small{display:block;margin-top:6px;color:#7a8a9b;font-size:12px}
.evidence-summary.urgent>div:last-child{border-color:#f4caca;background:#fff8f8}
.evidence-summary.urgent>div:last-child strong{color:#bc3b3b}
.evidence-summary.warn>div:last-child{border-color:#f2ddbd;background:#fffaf0}
.evidence-summary.warn>div:last-child strong{color:#9b6812}
.evidence-groups{display:grid;gap:10px}
.evidence-group{border:1px solid #e1ebf2;border-radius:8px;background:#fff;overflow:hidden}
.evidence-group>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;background:#f8fbfd;color:#263543}
.evidence-group>summary span{font-size:14px}
.evidence-group>summary b{font-size:12px;font-weight:400;color:#1486b1}
.evidence-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.evidence-card{display:grid;gap:10px;border:1px solid #e1ebf2;border-radius:8px;background:#fff;padding:11px;text-align:left}
.evidence-card:hover{border-color:#9ed7ef;background:#f7fdff}
.evidence-card-open{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}
.evidence-card-open:hover{background:transparent}
.evidence-rank{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#eaf8fe;color:#1486b1;font-size:13px}
.evidence-card-main b{display:block;color:#263543;font-size:13px;font-weight:400;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evidence-card-main small{display:block;margin-top:3px;color:#61758a;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evidence-badge{border-radius:999px;padding:5px 9px;font-size:12px;white-space:nowrap}
.evidence-badge.ok{background:#e7f8ee;color:#217847}
.evidence-badge.warn{background:#fff3d8;color:#9b6812}
.evidence-badge.missing{background:#ffe9e9;color:#bc3b3b}
.evidence-card-files{display:grid;gap:6px;border-top:1px solid #edf3f7;padding-top:8px}
.evidence-card-file{display:grid;grid-template-columns:78px minmax(0,1fr) 58px 48px;gap:8px;align-items:center;font-size:11px;color:#61758a}
.evidence-card-file span{white-space:nowrap}
.evidence-card-file b{font-weight:400;color:#7a8a9b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evidence-card-file.done b{color:#263543}
.evidence-card-file.submitted b{color:#9b6812}
.evidence-card-file label,.evidence-card-file button{border:1px solid #d8e1e8;border-radius:5px;background:#fff;color:#1486b1;padding:4px 6px;font-size:11px;cursor:pointer;text-align:center;white-space:nowrap}
.evidence-card-file button{border-color:#f0caca;color:#bc3b3b}
.evidence-card-file.missing{grid-template-columns:78px minmax(0,1fr) 58px}
.evidence-empty{border:1px solid #e1ebf2;border-radius:8px;background:#fff;padding:18px;color:#61758a}
.evidence-empty strong{display:block;color:#263543;font-weight:400;margin-bottom:6px}
.evidence-empty p{margin:0 0 12px}
.evidence-back{border:1px solid #d8e1e8;background:#fff;border-radius:6px;padding:8px 11px;color:#61758a;cursor:pointer;margin-bottom:10px}
.evidence-detail-page{max-width:980px}
.evidence-slot-list{display:grid;gap:12px}
.evidence-slot{border:1px solid #e1ebf2;border-radius:8px;background:#fff;padding:14px}
.evidence-slot.done{border-color:#bdebd2;background:#fbfffd}
.evidence-slot.submitted{border-color:#f2ddbd;background:#fffaf0}
.evidence-slot-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.evidence-slot-title h3{margin:0 0 4px;font-size:16px;font-weight:400;color:#263543}
.evidence-slot-title p{margin:0;color:#61758a;font-size:12px}
.evidence-slot-title span{border-radius:999px;padding:5px 9px;font-size:12px;background:#ffe9e9;color:#bc3b3b}
.evidence-slot.done .evidence-slot-title span{background:#e7f8ee;color:#217847}
.evidence-slot.submitted .evidence-slot-title span{background:#fff3d8;color:#9b6812}
.evidence-dropzone{display:grid;place-items:center;gap:6px;min-height:112px;border:1px dashed #9ed7ef;border-radius:8px;background:#f8fdff;color:#1486b1;text-align:center;cursor:pointer;padding:14px}
.evidence-dropzone.dragover{background:#eaf8fe;border-color:#129dd1}
.evidence-dropzone b{font-weight:400;color:#263543}
.evidence-dropzone small{color:#61758a;font-size:12px}
.evidence-file-thumb{display:grid;place-items:center;width:64px;height:48px;border-radius:6px;background:linear-gradient(180deg,#55c8ed,#13a5d5);color:#fff;font-size:12px}
.evidence-slot-actions{display:flex;gap:8px;margin-top:10px}
.evidence-slot-actions label,.evidence-slot-actions button{border:1px solid #d8e1e8;border-radius:6px;background:#fff;color:#1486b1;padding:8px 12px;font-size:12px;cursor:pointer}
.evidence-slot-actions button{color:#bc3b3b}
.print-form-layout{margin:0 20px 20px;border:1px solid #dce8f0;border-radius:8px;background:#fff;padding:18px}
.print-form-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;border-bottom:1px solid #e7edf3;margin-bottom:14px;padding-bottom:10px}
.print-form-title h2{margin:0;font-size:20px;font-weight:400}
.print-form-title p{margin:0;color:#61758a;font-size:12px}
.print-form-layout h3{font-size:15px;font-weight:400;margin:18px 0 8px;color:#1486b1}
.print-form-group{break-inside:avoid;margin-bottom:14px}
.print-form-group h4{display:flex;justify-content:space-between;gap:10px;margin:0 0 6px;font-size:13px;font-weight:400}
.print-form-group h4 span{color:#61758a;font-size:12px}
.print-form-table{width:100%;border-collapse:collapse;font-size:10.5px}
.print-form-table th,.print-form-table td{border:1px solid #d8e1e8;padding:4px 5px;text-align:left;vertical-align:top}
.print-form-table th{background:#f6f9fb;font-weight:400;color:#4d5f72}
.print-form-table td:nth-child(8),
.print-form-table td:last-child{text-align:right}
.zuiko-doc-list{display:grid;gap:8px;padding:22px 28px}
.zuiko-doc-group{margin:18px 0 4px;font-size:14px;font-weight:500;color:#1486b1;letter-spacing:.02em}
.zuiko-doc-group:first-child{margin-top:0}
.zuiko-doc-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 150px;gap:12px;align-items:center;border:1px solid #e1ebf2;border-radius:6px;padding:14px 14px;background:#fbfdfe}
.zuiko-doc-row.done{border-color:#dfe7ee;background:#f7fafc;color:#7b8b9a}
.zuiko-doc-row.submitted{border-color:#f2ddbd;background:#fffaf0}
.zuiko-doc-row.pending{border-color:#f2ddbd;background:#fffdf8}
.zuiko-doc-row.missing{border-color:#f4caca;background:#fff8f8}
.zuiko-doc-row.doc-jump-highlight{outline:3px solid rgba(20,174,231,.30);outline-offset:2px;box-shadow:0 0 0 6px rgba(20,174,231,.08)}
.zuiko-doc-main{min-width:0}
.zuiko-doc-row b{display:block;font-weight:500}
.zuiko-doc-row small{display:block;color:#61758a;margin-top:3px}
.zuiko-status{display:inline-flex;justify-content:center;border-radius:4px;padding:7px 10px;background:#f1f5f8;color:#7c8da1;font-weight:500;font-size:12px}
.zuiko-status.submitted{background:#fff3d8;color:#9b6812}
.zuiko-status.pending{background:#fff1d8;color:#9b6812}
.zuiko-status.missing{background:#ffe9e9;color:#bc3b3b}
.zuiko-doc-row .zuiko-upload{display:inline-flex;align-items:center;justify-content:center;min-height:36px;box-sizing:border-box;border:1px dashed #9ed7ef;border-radius:4px;padding:8px 12px;text-align:center;color:#147da4;background:#fff;font-weight:500;line-height:1.2;cursor:pointer;align-self:center}
.zuiko-doc-actions{display:grid;gap:8px}
.zuiko-confirm{border:1px solid #bdebd2;border-radius:4px;background:#fbfffd;color:#217847;padding:8px 10px;font-size:12px;line-height:1.2;cursor:pointer}
.zuiko-confirm:disabled{opacity:.45;cursor:not-allowed}
.zuiko-ai-review{display:grid;gap:6px;margin-top:9px;border:1px solid #e1ebf2;border-radius:6px;background:#fff;padding:9px 10px}
.zuiko-ai-review strong{font-size:12px;font-weight:400;color:#263543}
.zuiko-ai-review small{font-size:11px;color:#61758a}
.zuiko-ai-review ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;margin:2px 0 0;padding-left:16px;color:#61758a;font-size:11px}
.zuiko-ai-review p{margin:0;color:#9b6812;font-size:11px;line-height:1.5}
.zuiko-ai-review.ok{border-color:#bdebd2;background:#fbfffd}
.zuiko-ai-review.warn{border-color:#f2ddbd;background:#fffaf0}
.zuiko-ai-review.empty{background:#fbfdfe}
.zuiko-client-board,
.zuiko-client-board button {
  font-weight: 300;
}
.zuiko-client-board h2,
.zuiko-client-board h3,
.zuiko-client-board h4,
.zuiko-client-board b,
.zuiko-client-board strong,
.zuiko-doc-row b,
.zuiko-status,
.zuiko-upload {
  font-weight: 400 !important;
}
.zuiko-client-board .eyebrow,
.zuiko-client-board small,
.zuiko-client-board p,
.zuiko-condition-chip,
.zuiko-meta span {
  font-weight: 300;
}
.side-upload-menu{margin:14px 18px 20px;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(255,255,255,.05);overflow:hidden}
.side-upload-menu summary{cursor:pointer;list-style:none;padding:10px 12px;color:rgba(255,255,255,.88);font-size:11px;text-align:center;letter-spacing:.08em}
.side-upload-menu summary::-webkit-details-marker{display:none}
.side-upload-menu button{display:block;width:100%;border:0;border-top:1px solid rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.82);padding:9px 10px;font-size:11px;text-align:left;cursor:pointer}
.side-upload-menu button:hover{background:rgba(255,255,255,.10);color:#fff}
.project-list-add{width:34px;height:34px;border-radius:999px;border:1px solid #9ed7ef;background:#fff;color:#1486b1;font-size:20px;line-height:1;cursor:pointer}
.annual-flow-block{display:grid;gap:14px;margin:22px 28px}
.annual-main-cta{display:grid;grid-template-columns:56px minmax(0,1fr) 150px;grid-template-rows:auto auto;gap:6px 16px;align-items:center;border:1px solid #bfe9f7;border-left:4px solid #14aee7;border-radius:10px;background:linear-gradient(135deg,#fbfdfe,#eef9fe);padding:18px 20px;text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(20,134,177,.06)}
.annual-main-cta span{grid-column:1;grid-row:1 / span 2;display:block;width:auto;height:auto;border-radius:0;background:transparent;color:#1486b1;font-size:11px;letter-spacing:.12em;line-height:1.2}
.annual-main-cta strong{grid-column:2;grid-row:1;display:block;color:#263543;font-size:20px;font-weight:400;line-height:1.35}
.annual-main-cta small{grid-column:2;grid-row:2;display:block;color:#61758a;font-size:13px;line-height:1.6}
.annual-main-cta b{grid-column:3;grid-row:1 / span 2;justify-self:end;border-radius:4px;background:#14aee7;color:#fff;padding:11px 16px;font-size:13px;font-weight:400;white-space:nowrap;min-width:132px;text-align:center}
.annual-main-cta.alert{border-color:#f4caca;border-left-color:#d85b5b;background:#fffafa}
.annual-main-cta.warn{border-color:#f2ddbd;border-left-color:#d39b31;background:#fffdf8}
.annual-main-cta.ok{border-color:#bdebd2;border-left-color:#2aa86b;background:#fbfffd}
.annual-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.annual-step{border:1px solid #e1ebf2;border-radius:10px;background:#fff;padding:12px;text-align:left;cursor:pointer}
.annual-step span{display:block;color:#61758a;font-size:12px;margin-bottom:6px}
.annual-step strong{display:block;color:#263543;font-size:14px;font-weight:400}
.annual-step small{display:block;color:#7a8a9b;font-size:12px;margin-top:5px}
.annual-step.done{background:#f8fafb;border-color:#d8e3ea;opacity:.78}
.annual-step.progress{background:#f7fdff;border-color:#9ed7ef}
.annual-step.alert{background:#fffafa;border-color:#f4caca}
.excel-import-manager{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid #d7edf7;border-radius:10px;background:#fbfdfe;padding:16px;margin:14px 0}
.excel-import-manager>div:first-child{display:flex;gap:12px;align-items:flex-start;min-width:0}
.excel-import-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#eaf8fe;color:#1486b1;font-size:11px;letter-spacing:.06em}
.excel-import-manager h5{margin:0 0 4px;color:#61758a;font-size:12px;font-weight:400}
.excel-import-manager strong{display:block;color:#263543;font-size:16px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.excel-import-manager small{display:block;color:#61758a;font-size:12px;margin-top:4px;line-height:1.5}
.excel-import-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.excel-reset-option{font-size:12px;color:#61758a;white-space:nowrap}
@media(max-width:1100px){.zuiko-package-grid,.zuiko-phase-grid,.form-output-grid,.top-ten-grid,.top-ten-summary,.evidence-summary,.evidence-card-grid,.annual-step-grid,.amount-summary-grid,.bid-target-panel,.bid-target-fields,.timeline-top-head,.timeline-strip{grid-template-columns:1fr}.zuiko-condition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zuiko-doc-row{grid-template-columns:1fr}.form-output-head,.top-ten-head,.evidence-head,.evidence-detail-head,.timeline-stage-head,.timeline-now-head{display:block}.timeline-stage-meta,.timeline-now-count{justify-items:start;margin-top:12px}.timeline-task{grid-template-columns:10px minmax(0,1fr)}.timeline-task small{grid-column:2}.form-output-total{text-align:left;margin-top:12px}.top-ten-actions{justify-content:flex-start;margin-top:10px}.top-ten-upload{display:inline-block}.evidence-head button,.evidence-detail-head .top-ten-upload{margin-top:10px}.evidence-card{grid-template-columns:30px minmax(0,1fr)}.evidence-badge{grid-column:2}.evidence-slot-title{display:block}.evidence-slot-title span{display:inline-block;margin-top:8px}.annual-main-cta{grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto}.annual-main-cta b{grid-column:2;grid-row:3;justify-self:start}.annual-main-cta span{grid-row:1 / span 3}}
@media print{
  body.printing-form-layout{background:#fff}
  body.printing-form-layout .sidebar,
  body.printing-form-layout .status-panel,
  body.printing-form-layout .app-header,
  body.printing-form-layout .zuiko-doc-head,
  body.printing-form-layout .zuiko-package-grid,
  body.printing-form-layout .zuiko-condition-grid,
  body.printing-form-layout .form-output-head,
  body.printing-form-layout .form-output-actions,
  body.printing-form-layout .form-output-grid,
  body.printing-form-layout .form-consistency,
  body.printing-form-layout .amount-consistency-panel,
  body.printing-form-layout .top-ten-panel,
  body.printing-form-layout .zuiko-doc-list{display:none!important}
  body.printing-form-layout .app-shell,
  body.printing-form-layout .app-main,
  body.printing-form-layout .layout{display:block;min-height:auto}
  body.printing-form-layout .panel,
  body.printing-form-layout .zuiko-doc-section,
  body.printing-form-layout .form-output-panel,
  body.printing-form-layout .print-form-layout{border:0;box-shadow:none;margin:0;padding:0;background:#fff}
  body.printing-form-layout .print-form-layout{display:block}
}

/* ── S2: 様式生成元バナー・書類行のファイル表示（2026-08-10） ── */
.form-source-banner {
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid #d5e3f0;
  background: #f2f8fd;
}
.form-source-banner.warn {
  border-color: #f0d9a8;
  background: #fdf8ec;
}
.form-source-banner b { font-size: 13px; }
.form-source-banner small { color: #5b6b7a; font-size: 11px; line-height: 1.6; }
.form-source-delta { color: #a8672a !important; }
.zuiko-doc-file { display: block; color: #3a7ca5; margin-top: 2px; }

/* 工事経歴書の重複の疑い（除外はせず、機械的に見つけた事実を添えるだけ） */
.ledger-duplicate-alert {
  margin: 16px 24px 0;
  padding: 12px 16px;
  border: 1px solid #e0c48a;
  border-left: 4px solid #d9a441;
  border-radius: 8px;
  background: #fffaf0;
  display: grid;
  gap: 6px;
}
.ledger-duplicate-alert b { color: #8a6100; font-size: 0.9rem; }
.ledger-duplicate-alert small { color: #6b5a34; font-size: 0.8rem; line-height: 1.6; }

/* ───────────────────────────────────────────────
   ログイン画面と保存エラーの表示（サーバー移行で追加）
   ─────────────────────────────────────────────── */

.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f4f6f9;
}

.login-box {
  width: min(400px, 100%);
  padding: 32px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.login-box h1 {
  margin: 0 0 8px;
  font-size: 20px;
}

.login-note {
  margin: 0 0 24px;
  color: #667;
  font-size: 13px;
  line-height: 1.7;
}

.login-box label {
  display: block;
  margin-bottom: 16px;
  font-size: 13px;
  font-weight: 600;
  color: #445;
}

.login-box input {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #ccd;
  border-radius: 6px;
  font-size: 15px;   /* 16px未満だとスマホで拡大されるため、下げすぎない */
  box-sizing: border-box;
}

.login-box input:focus {
  outline: 2px solid #2b6cb0;
  outline-offset: -1px;
  border-color: transparent;
}

.login-error {
  margin: 0 0 16px;
  padding: 10px 12px;
  border-radius: 6px;
  background: #fdeaea;
  color: #a02020;
  font-size: 13px;
}

.login-box button {
  width: 100%;
  padding: 12px;
  border: 0;
  border-radius: 6px;
  background: #2b6cb0;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

.login-box button:disabled {
  background: #9ab;
  cursor: default;
}

.save-error-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9998;
  padding: 12px 16px;
  background: #a02020;
  color: #fff;
  font-size: 13px;
  text-align: center;
}
