/* Recorded project timeline. Existing frame geometry remains the shell's job. */
#v2Time .pj-panel .v2-bhead { padding:20px 24px 16px; }
#v2Time .pj-panel .v2-bhead h2 { margin:4px 0 0; font:600 25px/1.2 var(--font-ui); letter-spacing:-.035em; color:#163354; }
#v2Time .pj-panel .v2-bhead .sub { margin-top:7px; color:#64748b; }
#v2Time .pj-panel .v2-folio { font:600 10px/1.3 var(--font-ui); letter-spacing:.14em; color:#64748b; }
#v2Time .pj-workspace { flex:1; min-height:0; display:flex; flex-direction:column; color:#24374d; }
.pj-toolbar { display:flex; gap:16px; align-items:center; padding:14px 24px; border-bottom:1px solid #e5ebf2; }
.pj-search { flex:1; min-width:120px; }
.pj-search input { width:100%; box-sizing:border-box; height:36px; border:1px solid #dbe3ed; border-radius:6px; background:#fff; color:#203752; padding:0 11px; font:13px var(--font-ui); }
.pj-filters { display:flex; gap:3px; }
.pj-filters button,.pj-detail-nav button,.pj-edit { border:1px solid transparent; background:transparent; border-radius:6px; color:#52667c; padding:8px 11px; min-height:34px; font:500 12px var(--font-ui); cursor:pointer; }
.pj-filters button[aria-pressed=true] { color:#1254a0; background:#eaf3ff; }
.pj-body { min-height:0; flex:1; display:grid; grid-template-columns:minmax(270px,48%) minmax(0,1fr); }
.pj-library { display:flex; flex-direction:column; min-height:0; border-right:1px solid #e5ebf2; background:#f9fbfd; }
.pj-count { margin:0; padding:12px 18px 7px; font:500 11px var(--font-ui); color:#718197; }
.pj-list { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:3px 10px 12px; }
.pj-card { width:100%; box-sizing:border-box; text-align:left; display:block; border:1px solid #e3eaf3; background:#fff; color:inherit; border-radius:8px; padding:10px 12px; margin:5px 0; cursor:pointer; font-family:var(--font-ui); }
.pj-card:hover { background:#eef4fb; }
.pj-card[aria-current=true] { background:#fff; border-color:#a9c8ed; box-shadow:0 1px 3px #173a6110; }
.pj-card-top { display:flex; gap:9px; justify-content:space-between; align-items:center; }
.pj-card strong { font-size:13px; line-height:1.4; font-weight:600; overflow-wrap:anywhere; }
.pj-card-arrow { color:#7890aa; }
.pj-card-meta { display:block; margin-top:3px; font-size:10px; line-height:1.5; color:#65788e; }
.pj-card-next { display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; margin-top:6px; font-size:12px; line-height:1.5; color:#3c5774; }
.pj-card-next>span,.pj-card-phase>span { color:#778aa1; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-right:5px; }
.pj-card-phase { display:block; margin-top:6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#285b91; font-size:11px; line-height:1.5; }
.pj-time-axis { padding:3px 25px 9px; font:10px/1.4 var(--font-ui); color:#75889f; }
.pj-time-axis>span { display:block; margin-bottom:5px; color:#4d6b8c; font-weight:600; }
.pj-time-axis>div { display:flex; justify-content:space-between; gap:8px; }
.pj-track,.pj-undated-track { display:block; position:relative; margin:7px 0 4px; height:6px; border-radius:3px; background:#eef3f8; }
.pj-range { display:block; position:absolute; height:100%; background:#4387cf; border-radius:3px; min-width:3px; max-width:100%; }
.pj-range.is-point { width:8px!important; min-width:8px; transform:translateX(-50%); border-radius:50%; }
.pj-undated-track { background:transparent; height:6px; border-bottom:1px dashed #cfdae7; border-radius:0; }
.pj-undated-track>span { display:block; position:absolute; bottom:-3px; width:5px; height:5px; border-radius:50%; background:#cfdae7; }
.pj-card-date { display:block; margin-top:4px; font:10px/1.4 var(--font-ui); color:#71849b; }
.pj-phase { margin-top:17px; display:flex; flex-direction:column; gap:4px; }
.pj-phase>span { font:600 10px/1.4 var(--font-ui); color:#71869e; text-transform:uppercase; letter-spacing:.06em; }
.pj-phase strong { color:#285b91; font:600 13px/1.5 var(--font-ui); }
.pj-detail-dates { margin:7px 0 15px; font:11px/1.5 var(--font-ui); color:#73859b; }
.pj-milestone-timeline ol { list-style:none; padding:5px 0 0 8px; }
.pj-milestone-timeline ol li { position:relative; margin:0; padding:0 0 19px 20px; border-left:1px solid #d8e4f1; }
.pj-milestone-timeline ol li:last-child { border-left-color:transparent; padding-bottom:0; }
.pj-milestone-timeline ol li:before { content:""; position:absolute; width:7px; height:7px; left:-4px; top:5px; border:1px solid #9db5cf; border-radius:50%; background:#fff; box-sizing:border-box; }
.pj-milestone-timeline ol li.is-complete:before { background:#2d6cac; border-color:#2d6cac; }
.pj-milestone-timeline ol li.is-recorded:before { background:#d4e6fb; border-color:#76a6d9; }
.pj-detail { min-height:0; display:flex; flex-direction:column; min-width:0; background:#fff; }
.pj-detail-nav { display:flex; align-items:center; justify-content:space-between; padding:10px 22px; border-bottom:1px solid #eef1f5; font:11px var(--font-ui); color:#77879a; }
.pj-detail-nav>div { display:flex; gap:5px; }
.pj-detail-nav button { min-width:34px; border-color:#e0e7ef; padding:5px; }
.pj-detail-nav button:disabled { color:#afbac7; cursor:default; }
.pj-detail-nav .pj-back { display:none; }
.pj-detail-scroll { padding:22px 24px; overflow-y:auto; overscroll-behavior:contain; }
.pj-eyebrow { margin:0 0 9px; text-transform:uppercase; font:600 10px/1.4 var(--font-ui); letter-spacing:.1em; color:#687f97; }
#v2Time .pj-detail h3 { margin:0 0 12px; font:600 25px/1.22 var(--font-ui); letter-spacing:-.035em; color:#173a60; overflow-wrap:anywhere; }
.pj-status { display:inline-block; color:#486785; background:#f1f5f9; border-radius:4px; padding:4px 7px; font:500 10px/1.3 var(--font-ui); }
.pj-description { margin:18px 0; font:13px/1.7 var(--font-ui); color:#566a80; white-space:pre-line; }
.pj-next { margin:23px 0 18px; padding:15px 17px; border-left:3px solid #4d8cce; border-radius:0 6px 6px 0; background:#f4f8fd; }
.pj-next>span { font:600 10px var(--font-ui); text-transform:uppercase; letter-spacing:.08em; color:#497099; }
.pj-next p { margin:7px 0 0; font:500 14px/1.5 var(--font-ui); color:#244c76; }
.pj-next small { display:block; margin-top:10px; color:#6c7e92; font:11px var(--font-ui); }
.pj-links { display:flex; flex-wrap:wrap; gap:9px; }
.pj-links a,.pj-edit { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:36px; padding:8px 11px; border:1px solid #dce5ef; border-radius:6px; color:#356794; font:500 12px var(--font-ui); text-decoration:none; }
.pj-links a.pj-primary { background:#2463a7; color:#fff; border-color:#2463a7; }
.pj-edit { background:#fff; }
.pj-milestones { margin-top:22px; padding-top:15px; border-top:1px solid #e6edf4; font:12px/1.5 var(--font-ui); }
.pj-milestones summary { cursor:pointer; display:list-item; font-weight:600; color:#47637f; padding:4px 0; }
.pj-milestones summary span { margin-left:5px; color:#8998a8; font-weight:400; }
.pj-milestones ol,.pj-milestones ul { margin:10px 0 0; padding-left:18px; }
.pj-milestones li { margin-bottom:13px; padding-left:4px; color:#5e7288; }
.pj-milestones strong { font-weight:500; color:#35516e; display:block; }
.pj-milestones li span { display:block; margin-top:3px; font-size:10px; }
.pj-milestones li p { margin:5px 0; }
.pj-source { margin:26px 0 0; color:#8291a1; font:10px/1.5 var(--font-ui); }
.pj-empty { padding:26px; font:13px/1.5 var(--font-ui); color:#77889a; }
.pj-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#v2Time :is(button,a,input):focus-visible { outline:2px solid #4189d3; outline-offset:2px; }
@media(max-width:900px) {
  #v2Time .pj-panel .v2-bhead { padding:15px 17px 12px; }
  #v2Time .pj-panel .v2-bhead h2 { font-size:22px; }
  .pj-toolbar { flex-wrap:wrap; gap:9px; padding:10px 15px; }
  .pj-search { flex-basis:100%; }
  .pj-search input,.pj-filters button,.pj-detail-nav button,.pj-links a,.pj-edit { min-height:44px; }
  .pj-filters { width:100%; justify-content:space-between; }
  .pj-body { display:block; position:relative; }
  .pj-library,.pj-detail { height:100%; }
  .pj-library { border-right:0; }
  .pj-detail { display:none; }
  .pj-show-detail .pj-library { display:none; }
  .pj-show-detail .pj-detail { display:flex; }
  .pj-detail-nav { padding:5px 15px; }
  .pj-detail-nav .pj-back { display:inline-flex; border:0; align-items:center; }
  .pj-detail-nav button { min-width:44px; }
  .pj-detail-scroll { padding:21px 20px; }
  .pj-time-axis { padding-left:29px; padding-right:29px; }
  #v2Time .pj-detail h3 { font-size:23px; }
}

.pj-recorded-next { margin:0 0 19px; font:12px/1.5 var(--font-ui); color:#61788e; }
.pj-recorded-next span { display:block; margin-bottom:4px; font-size:10px; font-weight:600; color:#7c8da0; }

/* Source-backed stages replace empty calendar bars for undated projects. */
.pj-time-axis[hidden] { display:none; }
.pj-stage-strip { display:flex;align-items:center;gap:5px;margin:9px 0 5px;min-height:9px; }
.pj-stage-strip>span { display:block;width:9px;height:9px;box-sizing:border-box;border:1px solid #c9d5e3;border-radius:50%;background:#fff; }
.pj-stage-strip>span.is-recorded { border-color:#81a9d7;background:#e8f1fc; }
.pj-stage-strip>span.is-complete { border-color:#2463a7;background:#2463a7; }
.pj-stage-strip>span.is-current { border:2px solid #2463a7;background:#fff; }
.pj-stage-caption { display:block;margin-top:6px;font:10px/1.4 var(--font-ui);color:#71849b; }
.pj-card-next { -webkit-line-clamp:2; }
.pj-stage-timeline { margin:18px 0; }
.pj-stage-heading { display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px; }
#v2Time .pj-stage-heading h4 { margin:0;font:600 13px/1.4 var(--font-ui);letter-spacing:0;color:#244568; }
.pj-stage-heading>span { font:10px/1.4 var(--font-ui);color:#7b8a9e;text-align:right; }
.pj-stage-timeline ol { list-style:none;margin:0;padding:0; }
.pj-stage-timeline li { position:relative;display:flex;gap:12px;margin:0;padding:0 0 14px; }
.pj-stage-timeline li:not(:last-child):after { content:"";position:absolute;left:5px;top:13px;bottom:0;width:1px;background:#e0e7f0; }
.pj-stage-timeline li:last-child { padding-bottom:0; }
.pj-stage-dot { position:relative;z-index:1;flex:0 0 11px;width:11px;height:11px;box-sizing:border-box;border:1px solid #c5d2e1;border-radius:50%;background:#fff;margin-top:4px; }
.pj-stage-timeline .is-recorded .pj-stage-dot { background:#e8f1fc;border-color:#81a9d7; }
.pj-stage-timeline .is-complete .pj-stage-dot { background:#2463a7;border-color:#2463a7; }
.pj-stage-timeline .is-current .pj-stage-dot { border:2px solid #2463a7; }
.pj-stage-content { min-width:0;flex:1; }
.pj-stage-content>strong { display:block;font:500 12px/1.45 var(--font-ui);color:#294863;overflow-wrap:anywhere; }
.pj-stage-meta { display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:3px;font:10px/1.4 var(--font-ui);color:#7a8b9f; }
.pj-stage-timeline .is-recorded .pj-stage-state { color:#4c709b; }
.pj-stage-timeline .is-current .pj-stage-state { color:#2463a7;font-weight:600; }
.pj-stage-content details { margin-top:4px;font:11px/1.5 var(--font-ui);color:#627991; }
.pj-stage-content summary { cursor:pointer;color:#5a7594;width:fit-content;padding:2px 0; }
.pj-stage-content details p { margin:5px 0 0;color:#627991; }
.pj-stage-empty { margin:0;padding:10px 12px;border:1px dashed #dce4ee;border-radius:6px;font:12px/1.5 var(--font-ui);color:#697d94; }
.pj-context .pj-description { margin:8px 0 0;font-size:12px;line-height:1.6; }
.pj-detail .pj-next { margin:14px 0;padding:12px 14px; }
.pj-detail .pj-next p { font-size:13px; }
.pj-stage-content summary:focus-visible { outline:2px solid #4189d3;outline-offset:3px; }
@media(max-width:900px) {
  .pj-stage-heading { align-items:flex-start; }
  .pj-stage-content summary { box-sizing:border-box;min-height:44px;display:list-item;align-content:center; }
  .pj-filters { flex-wrap:wrap;justify-content:flex-start;gap:3px; }
}

/* Secondary recorded plans stay discoverable without competing with priorities. */
.pj-more-plans { margin:12px 2px 0;border-top:1px solid #dfe7f0;font:12px/1.4 var(--font-ui); }
.pj-more-plans>summary { cursor:pointer;padding:12px 3px;color:#425d79;font-weight:600; }
.pj-more-plans>summary>span { color:#7b8ba0;font-weight:400;margin-left:5px; }
.pj-plan-row { width:100%;display:block;box-sizing:border-box;text-align:left;padding:9px 11px;border:0;border-bottom:1px solid #e6edf4;background:transparent;border-radius:4px;color:#35516e;cursor:pointer;font-family:var(--font-ui); }
.pj-plan-row:hover { background:#eef4fb; }
.pj-plan-row[aria-current=true] { background:#eaf3ff;color:#1254a0; }
.pj-plan-row strong { display:block;font-size:12px;font-weight:500;line-height:1.5; }
.pj-plan-row>span { display:block;font-size:10px;line-height:1.5;margin-top:2px;color:#74859a; }
.pj-more-plans>summary:focus-visible { outline:2px solid #4189d3;outline-offset:2px; }
@media(max-width:900px) {
  .pj-more-plans>summary { box-sizing:border-box;min-height:44px;align-content:center; }
  .pj-plan-row { min-height:44px; }
}

/* Keep the next destination with the next step, above supporting detail. */
.pj-next-action { display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:36px;box-sizing:border-box;margin-top:10px;padding:8px 12px;background:#2463a7;border:1px solid #2463a7;border-radius:6px;color:#fff;font:500 12px/1.4 var(--font-ui);text-decoration:none; }
.pj-next-action:hover { background:#1d528e;border-color:#1d528e;color:#fff; }
@media(max-width:900px) { .pj-next-action { min-height:44px; } }
