:root {
  --oilgu-navy: #051936;
  --oilgu-orange: #ff7a1a;
  --oilgu-red: #d42e2e;
  --oilgu-surface: #f7f8fa;
  --oilgu-text-strong: #111827;
  --oilgu-text-muted: #64748b;
  --oilgu-border: #cbd5e1;

  --oilgu-white: #ffffff;

  /* Internal milestone status. Figma has no counterpart; used only on the development view. */
  --oilgu-green: #16a34a;

  /* Admin sidebar, measured from Figma node 1:2201. */
  --oilgu-sidebar-active-bg: #173052;
  --oilgu-sidebar-idle: #a1a9b6;
  --oilgu-sidebar-divider: rgba(255, 255, 255, 0.14);
  --oilgu-navy-hover: rgba(255, 255, 255, 0.06);

  --oilgu-sidebar-width: 240px;
  --oilgu-min-width: 1440px;
  --oilgu-radius: 8px;
}

@font-face{font-family:Pretendard;src:url('/fonts/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
*{box-sizing:border-box}body{margin:0;background:var(--oilgu-surface);color:var(--oilgu-text-strong);font:14px/1.5 Pretendard,Arial,sans-serif}main{max-width:1440px;margin:auto;padding:28px 24px 48px}a{color:var(--oilgu-navy);text-underline-offset:3px}a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--oilgu-orange);outline-offset:3px}nav{display:flex;gap:20px;flex-wrap:wrap}h1{margin:24px 0 8px;font-size:28px;color:var(--oilgu-navy)}.intro{margin:0 0 20px;color:var(--oilgu-text-muted)}ul{list-style:none;padding:0;margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.gantt{min-width:1246px}.gantt__progress-label--pending{background:var(--oilgu-navy)}.milestone-notes{color:var(--oilgu-text-muted);font-size:12px;margin:0}footer{margin-top:24px;color:var(--oilgu-text-muted)}@media(max-width:800px){main{padding:20px 16px 36px}.milestone-summary{flex-wrap:wrap}.milestone-summary__item{flex:1 1 45%}.milestone-legend{margin:0;flex-wrap:wrap}}
.milestone-page {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

.milestone-summary {
  display: flex;
  background: var(--oilgu-white);
  border: 1px solid var(--oilgu-border);
  border-radius: var(--oilgu-radius);
  overflow: hidden;
}

.milestone-summary__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  padding: 14px 20px;
  border-right: 1px solid var(--oilgu-border);
}

.milestone-summary__item:last-child {
  border-right: none;
}

.milestone-summary__label {
  font-size: 12px;
  color: var(--oilgu-text-muted);
}

.milestone-legend {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  margin-left: auto;
}

.milestone-legend__item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--oilgu-text-muted);
  white-space: nowrap;
}

.milestone-legend__swatch {
  width: 20px;
  height: 10px;
  border-radius: 2px;
}

.milestone-legend__swatch--pending {
  border: 1.5px solid var(--oilgu-navy);
}

.milestone-legend__swatch--awaiting-feedback {
  background: var(--oilgu-orange);
}

.milestone-legend__swatch--in-progress {
  background: var(--oilgu-orange);
}

.milestone-legend__swatch--done {
  background: var(--oilgu-green);
}

.milestone-summary__value {
  font-size: 16px;
  font-weight: 700;
  color: var(--oilgu-navy);
  font-variant-numeric: tabular-nums;
}

/* ---- Gantt ---- */

.gantt-scroll {
  width: 100%;
  overflow-x: auto;
  background: var(--oilgu-white);
  border: 1px solid var(--oilgu-border);
  border-radius: var(--oilgu-radius);
}

.gantt {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.35;
}

.gantt__th {
  padding: 6px 12px;
  background: var(--oilgu-surface);
  border-bottom: 1px solid var(--oilgu-border);
  font-size: 11px;
  font-weight: 700;
  color: var(--oilgu-text-muted);
  text-align: left;
  white-space: nowrap;
}

.gantt__th--badge {
  width: 60px;
}

.gantt__th--item {
  width: 132px;
}

.gantt__th--content {
  width: 360px;
}

.gantt__th--week {
  position: relative;
  width: 72px;
  padding-left: 8px;
  padding-right: 8px;
  border-left: 1px solid var(--oilgu-border);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.gantt__th--range {
  width: 190px;
  border-left: 1px solid var(--oilgu-border);
}

/* Each milestone is one tbody, so its badge, bar and range span the whole group. */
.gantt__group + .gantt__group > .gantt__row--head > * {
  border-top: 2px solid var(--oilgu-border);
}

.gantt__badge-cell {
  width: 60px;
  padding: 4px 12px;
  vertical-align: middle;
  text-align: center;
  background: var(--oilgu-white);
}

.gantt__id {
  display: inline-block;
  min-width: 32px;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--oilgu-navy);
  color: var(--oilgu-white);
  font-size: 11px;
  font-weight: 700;
}

.gantt__phase {
  padding: 5px 12px;
  border-left: 1px solid var(--oilgu-border);
  font-size: 13px;
  font-weight: 700;
  color: var(--oilgu-text-strong);
}

.gantt__phase-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.gantt__progress-label {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 999px;
  color: var(--oilgu-white);
  font-size: 11px;
  font-weight: 700;
}

.gantt__progress-label--in-progress,
.gantt__progress-label--awaiting-feedback {
  background: var(--oilgu-orange);
}

.gantt__progress-label--done {
  background: var(--oilgu-green);
}

.gantt__row--detail > * {
  border-top: 1px solid var(--oilgu-border);
}

.gantt__item {
  padding: 4px 12px;
  border-left: 1px solid var(--oilgu-border);
  font-size: 12px;
  font-weight: 500;
  color: var(--oilgu-text-muted);
  text-align: left;
  white-space: nowrap;
}

.gantt__content {
  padding: 4px 12px;
  border-left: 1px solid var(--oilgu-border);
  color: var(--oilgu-text-strong);
  word-break: keep-all;
}

.gantt__content-clamp {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.gantt__cell {
  position: relative;
  border-left: 1px solid var(--oilgu-border);
  background: var(--oilgu-surface);
}

/* Segments abut across week cells, so a milestone reads as one continuous bar. */
.gantt__bar {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 12px;
  box-sizing: border-box;
}

/* Outline only. Side borders land on the outer segments so the bar has no internal seams. */
.gantt__bar--pending {
  background: transparent;
  border-top: 1.5px solid var(--oilgu-navy);
  border-bottom: 1.5px solid var(--oilgu-navy);
}

.gantt__bar--pending.gantt__bar--first {
  border-left: 1.5px solid var(--oilgu-navy);
}

.gantt__bar--pending.gantt__bar--last {
  border-right: 1.5px solid var(--oilgu-navy);
}

.gantt__bar--in-progress,
.gantt__bar--awaiting-feedback {
  background: var(--oilgu-orange);
}

.gantt__bar--done {
  background: var(--oilgu-green);
}

.gantt__bar--first {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}

.gantt__bar--last {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

.gantt__bar--fill {
  z-index: 1;
}

.gantt__today {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--oilgu-red);
  z-index: 2;
}

/* ---- Source-controlled development log ---- */

.milestone-updates {
  width: 100%;
  padding: 20px 24px;
  background: var(--oilgu-white);
  border: 1px solid var(--oilgu-border);
  border-radius: var(--oilgu-radius);
}

.milestone-updates__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--oilgu-navy);
}

.milestone-updates__list {
  margin-top: 14px;
}

.milestone-updates__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--oilgu-border);
  font-size: 14px;
  color: var(--oilgu-text-strong);
}

.milestone-updates__features {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.milestone-updates__item time {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--oilgu-navy);
  font-variant-numeric: tabular-nums;
}

.gantt__today--head {
  overflow: visible;
}

.gantt__today-flag {
  position: absolute;
  top: -2px;
  left: 2px;
  padding: 1px 5px;
  border-radius: 3px;
  background: var(--oilgu-red);
  color: var(--oilgu-white);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.gantt__range {
  padding: 5px 12px;
  border-left: 1px solid var(--oilgu-border);
  vertical-align: middle;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
