/* ======================================================================
   APPLICATION READINESS — focused journey and actionable checklist
   The score is a determinate indicator; gold is reserved for advancement.
   ====================================================================== */

#dashboard .rd-section { width: min(100%, 1480px); margin: 2rem auto 3.1rem; scroll-margin-top: 6.5rem; }
#dashboard .rd-section {
  --rd-motion-fast: 140ms;
  --rd-motion-standard: 240ms;
  --rd-motion-enter: 320ms;
  --rd-ease-out: cubic-bezier(.16, 1, .3, 1);
  --rd-ease-standard: cubic-bezier(.2, .7, .2, 1);
}
#dashboard .rd-section .panel-head { align-items: end; margin-bottom: 1.35rem; }
#dashboard .rd-section .panel-title { max-width: 22ch; color: var(--ivory); font-family: var(--dashboard-font-body); font-size: clamp(2.15rem, 3.2vw, 3.05rem); font-weight: 650; letter-spacing: -.055em; line-height: 1.04; text-wrap: balance; }
#dashboard .rd-section :is(.section-kicker, .panel-meta, .rd-kicker, .rd-gates-head) { font-size: .72rem; font-weight: 600; letter-spacing: .075em; }

/* A compact phase map makes the path legible before the user sees any tasks. */
#dashboard .rd-journey { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; list-style: none; margin: 0 0 1.5rem; padding: 0; animation: rd-enter var(--rd-motion-enter) var(--rd-ease-out) both; }
#dashboard .rd-journey li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .72rem; min-height: 62px; padding: 0 .9rem; color: var(--quiet); }
#dashboard .rd-journey li:first-child { padding-inline-start: 0; }
#dashboard .rd-journey li::after { content: ""; position: absolute; top: 50%; right: 0; left: 0; z-index: 0; height: 1px; background: var(--line); transform: translateY(-50%); }
#dashboard .rd-journey li:first-child::after { left: 1rem; }
#dashboard .rd-journey li:last-child::after { right: calc(100% - 1rem); }
#dashboard .rd-journey-number { position: relative; z-index: 1; display: grid; width: 2.25rem; height: 2.25rem; place-items: center; color: var(--quiet); border: 1px solid var(--line-strong); border-radius: 50%; background: var(--bg-deep); font: 700 .75rem/1 var(--dashboard-font-meta); font-variant-numeric: tabular-nums; transition: color var(--rd-motion-fast) var(--rd-ease-standard), border-color var(--rd-motion-fast) var(--rd-ease-standard), background-color var(--rd-motion-fast) var(--rd-ease-standard), box-shadow var(--rd-motion-standard) var(--rd-ease-out); }
#dashboard .rd-journey li > span:last-child { position: relative; z-index: 1; display: grid; gap: .08rem; min-width: 0; background: var(--bg); }
#dashboard .rd-journey strong { overflow: hidden; color: var(--muted); font-size: .84rem; font-weight: 650; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
#dashboard .rd-journey small { color: var(--quiet); font: .66rem/1.3 var(--dashboard-font-meta); }
#dashboard .rd-journey li[data-state="done"] .rd-journey-number { color: #171208; border-color: var(--gold); background: var(--gold); }
#dashboard .rd-journey li[data-state="done"]::after { background: linear-gradient(90deg, var(--gold-deep), var(--gold)); }
#dashboard .rd-journey li[data-state="done"] strong { color: var(--text); }
#dashboard .rd-journey li[data-state="current"] .rd-journey-number { color: #171208; border-color: var(--gold-bright); background: var(--gold-bright); box-shadow: 0 0 0 4px rgba(196,181,253,.13); }
#dashboard .rd-journey li[data-state="current"] strong { color: var(--gold-bright); }

/* The next move gets the strongest hierarchy; secondary work stays quiet. */
#dashboard .rd-plan { grid-template-columns: minmax(0, 1.5fr) minmax(330px, .62fr); gap: 1rem; margin-bottom: 1.6rem; animation: rd-enter var(--rd-motion-enter) 50ms var(--rd-ease-out) both; }
#dashboard .rd-next { position: relative; min-height: 250px; padding: clamp(1.65rem, 3vw, 2.35rem); overflow: hidden; border: 1px solid var(--gold-line) !important; border-radius: 20px !important; background: #171717 !important; background-image: none !important; box-shadow: none !important; transition: border-color var(--rd-motion-standard) var(--rd-ease-standard), box-shadow var(--rd-motion-standard) var(--rd-ease-standard); }
#dashboard .rd-next::after { content: ""; position: absolute; top: -10rem; right: -8rem; width: 22rem; height: 22rem; border: 1px solid rgba(196,181,253,.11); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(196,181,253,.018), 0 0 0 6rem rgba(196,181,253,.008); pointer-events: none; }
#dashboard .rd-next > * { position: relative; z-index: 1; }
#dashboard .rd-now-top { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
#dashboard .rd-next .rd-kicker { color: var(--gold-bright); }
#dashboard .rd-score-gain { display: inline-flex; align-items: center; min-height: 31px; padding: 0 .7rem; color: var(--gold-bright); border: 1px solid var(--gold-line); border-radius: 999px; background: rgba(196,181,253,.08); font: 650 .68rem/1 var(--dashboard-font-meta); letter-spacing: .04em; text-transform: uppercase; }
#dashboard .rd-next h3 { max-width: 22ch; margin: .72rem 0 0; color: var(--ivory); font-family: var(--dashboard-font-body); font-size: clamp(1.85rem, 2.8vw, 2.5rem); font-weight: 650; letter-spacing: -.045em; line-height: 1.06; text-wrap: balance; }
#dashboard .rd-next > p { max-width: 62ch; margin: .85rem 0 0; color: var(--t2); font-family: var(--dashboard-font-body); font-size: 1rem; font-weight: 400; line-height: 1.62; text-wrap: pretty; }
#dashboard .rd-next footer { margin-top: 1.45rem; }
#dashboard .rd-next .ctrl-btn.primary { min-height: 46px; padding-inline: 18px; font-size: .84rem; transform-origin: center; transition: transform var(--rd-motion-fast) var(--rd-ease-out), box-shadow var(--rd-motion-fast) var(--rd-ease-out), background-color var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-next .ctrl-btn.primary:hover { box-shadow: 0 8px 24px rgba(196,181,253,.19); transform: translateY(-1px); }
#dashboard .rd-next .ctrl-btn.primary:active { transform: scale(.98); }
#dashboard .rd-next-sealed { border-color: rgba(120,198,157,.38) !important; }

#dashboard .rd-side { gap: .75rem; }
#dashboard .rd-up-next { min-width: 0; }
#dashboard .rd-up-next > .rd-kicker { margin: 0 0 .5rem .15rem; color: var(--quiet); }
#dashboard .rd-queue { gap: .42rem; }
#dashboard .rd-queue button { min-height: 72px; padding: .8rem .9rem; border-color: var(--line) !important; border-radius: 13px !important; background: #171717 !important; box-shadow: none !important; transform-origin: center; transition: transform var(--rd-motion-fast) var(--rd-ease-out), border-color var(--rd-motion-fast) var(--rd-ease-out), background-color var(--rd-motion-fast) var(--rd-ease-out), box-shadow var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-queue button:hover { border-color: var(--gold-line) !important; background: #1b1b1b !important; box-shadow: 0 7px 18px rgba(0,0,0,.16) !important; transform: translateY(-1px); }
#dashboard .rd-queue button:active { transform: scale(.985); }
#dashboard .rd-queue button:focus-visible, #dashboard .rd-reqs button:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 2px; }
#dashboard .rd-queue .rd-points { width: 32px; height: 32px; color: var(--gold-bright); border-color: var(--gold-line); border-radius: 8px; background: rgba(196,181,253,.09); font-size: .7rem; }
#dashboard .rd-queue .rd-body strong { color: var(--text); font-family: var(--dashboard-font-body); font-size: .94rem; font-weight: 600; letter-spacing: -.012em; }
#dashboard .rd-queue .rd-body small { color: var(--t2); font-family: var(--dashboard-font-body); font-size: .78rem; font-weight: 400; }

#dashboard .rd-gates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: .7rem !important; overflow: hidden; border-color: var(--line) !important; border-radius: 14px !important; background: #101016 !important; box-shadow: none !important; }
#dashboard .rd-gates-head { grid-column: 1 / -1; margin: 0 0 .42rem .2rem; color: var(--quiet); }
#dashboard .rd-gates > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .45rem; min-width: 0; padding: .25rem .45rem; border-inline-start: 1px solid var(--line); }
#dashboard .rd-gates > div:nth-of-type(2) { border-inline-start: 0; }
#dashboard .rd-gates .rd-mark { width: 20px; height: 20px; margin-top: .06rem; border-color: var(--line-strong); background: transparent; }
#dashboard .rd-gates > div[data-met="true"] .rd-mark { border-color: transparent; background: var(--success); box-shadow: none; }
#dashboard .rd-gates .rd-body strong { color: var(--muted); font-size: .75rem; line-height: 1.35; }
#dashboard .rd-gates .rd-body small { color: var(--quiet); font-size: .66rem; }

/* Native disclosure keeps the full checklist one screen deep, not five cards wide. */
#dashboard .rd-phases { display: grid; gap: .65rem; }
#dashboard .rd-phase { border: 1px solid var(--line); border-radius: 16px; background: #101016; overflow: clip; box-shadow: 0 1px 0 rgba(255,255,255,.018); animation: rd-enter var(--rd-motion-enter) var(--rd-ease-out) both; transition: border-color var(--rd-motion-standard) var(--rd-ease-standard), background-color var(--rd-motion-standard) var(--rd-ease-standard), box-shadow var(--rd-motion-standard) var(--rd-ease-standard); }
#dashboard .rd-phase:nth-child(1) { animation-delay: 90ms; }
#dashboard .rd-phase:nth-child(2) { animation-delay: 120ms; }
#dashboard .rd-phase:nth-child(3) { animation-delay: 150ms; }
#dashboard .rd-phase:nth-child(4) { animation-delay: 180ms; }
#dashboard .rd-phase:nth-child(5) { animation-delay: 210ms; }
#dashboard .rd-phase[open] { border-color: rgba(196,181,253,.32); background: #15151d; box-shadow: 0 14px 32px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.025); }
#dashboard .rd-phase summary { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 22px; align-items: center; gap: 1rem; min-height: 92px; padding: 1rem 1.15rem; cursor: pointer; list-style: none; }
#dashboard .rd-phase summary::-webkit-details-marker { display: none; }
#dashboard .rd-phase summary { transition: background-color var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-phase summary:hover { background: rgba(255,255,255,.025); }
#dashboard .rd-phase summary:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: -3px; }
#dashboard .rd-phase-number { display: grid; width: 36px; height: 36px; place-items: center; color: var(--quiet); border: 1px solid var(--line-strong); border-radius: 50%; font: 700 .75rem/1 var(--dashboard-font-meta); }
#dashboard .rd-phase-copy { display: grid; gap: .16rem; min-width: 0; }
#dashboard .rd-phase-copy .rd-kicker { margin: 0; color: var(--quiet); font-size: .66rem; }
#dashboard .rd-phase-copy strong { color: var(--text); font-family: var(--dashboard-font-body); font-size: 1.12rem; font-weight: 600; letter-spacing: -.015em; }
#dashboard .rd-phase-copy > small { overflow: hidden; color: var(--t2); font-family: var(--dashboard-font-body); font-size: .84rem; font-weight: 400; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
#dashboard .rd-phase-score { color: var(--ivory); font: 700 1.45rem/1 var(--dashboard-font-ui); font-variant-numeric: tabular-nums; }
#dashboard .rd-phase-score small { color: var(--quiet); font: 600 .7rem/1 var(--dashboard-font-meta); }
#dashboard .rd-phase-toggle { position: relative; width: 22px; height: 22px; border: 1px solid var(--line-strong); border-radius: 50%; transition: border-color var(--rd-motion-fast) var(--rd-ease-out), background-color var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-phase-toggle::before, #dashboard .rd-phase-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 1px; background: var(--muted); transform: translate(-50%, -50%); }
#dashboard .rd-phase-toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform var(--rd-motion-standard) var(--rd-ease-standard); }
#dashboard .rd-phase[open] .rd-phase-toggle { border-color: var(--gold-line); background: rgba(196,181,253,.08); }
#dashboard .rd-phase[open] .rd-phase-toggle::after { transform: translate(-50%, -50%); }
#dashboard .rd-phase[data-state="current"] .rd-phase-number { color: #171208; border-color: var(--gold-bright); background: var(--gold-bright); }
#dashboard .rd-phase[data-state="current"] .rd-phase-copy .rd-kicker { color: var(--gold-bright); }
#dashboard .rd-phase[data-state="done"] .rd-phase-number { color: #171208; border-color: var(--gold); background: var(--gold); }

#dashboard .rd-phase-body { padding: 0 1rem 1rem; border-top: 1px solid var(--line); }
#dashboard .rd-phase[open] .rd-phase-body { animation: rd-disclose var(--rd-motion-standard) var(--rd-ease-out) both; }
#dashboard .rd-phase-body .rd-track { height: 4px; margin: .9rem 0 .55rem; background: rgba(255,255,255,.08); box-shadow: none; }
#dashboard .rd-phase-body .rd-track i { background: linear-gradient(90deg, var(--gold-deep), var(--gold-bright)); box-shadow: none; }
#dashboard .rd-phase-progress { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; color: var(--quiet); font: .72rem/1.45 var(--dashboard-font-meta); }
#dashboard .rd-reqs { gap: 0; }
#dashboard .rd-reqs > li + li { border-top-color: var(--line); }
#dashboard .rd-reqs > li > * { grid-template-columns: 24px minmax(0, 1fr) auto 18px; gap: .85rem; min-height: 84px; padding: .88rem .35rem; border-radius: 10px; }
#dashboard .rd-reqs > li > button { cursor: pointer; transform-origin: center; transition: transform var(--rd-motion-fast) var(--rd-ease-out), border-color var(--rd-motion-fast) var(--rd-ease-out), background-color var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-reqs > li > button:hover { border-color: rgba(196,181,253,.2); background: rgba(196,181,253,.06); transform: translateX(2px); }
#dashboard .rd-reqs > li > button:active { transform: scale(.99); }
#dashboard .rd-reqs .rd-mark { width: 23px; height: 23px; border-color: var(--line-strong); background: transparent; }
#dashboard .rd-reqs li[data-state="done"] .rd-mark { border-color: transparent; background: var(--gold-bright); box-shadow: 0 0 0 3px rgba(196,181,253,.1); animation: rd-check-in var(--rd-motion-standard) var(--rd-ease-out) both; }
#dashboard .rd-reqs li[data-state="done"] .rd-mark svg { stroke: #171208; }
#dashboard .rd-reqs li[data-state="locked"] { opacity: .68; }
#dashboard .rd-reqs li[data-state="locked"] .rd-mark { border-style: dashed; }
#dashboard .rd-reqs .rd-body { display: grid; gap: .12rem; }
#dashboard .rd-reqs .rd-body strong { color: var(--text); font-family: var(--dashboard-font-body); font-size: .96rem; font-weight: 600; letter-spacing: -.012em; }
#dashboard .rd-reqs li[data-state="done"] .rd-body strong { color: var(--muted); text-decoration: line-through; text-decoration-color: rgba(232,224,210,.3); }
#dashboard .rd-reqs .rd-body small { margin: 0; color: var(--t2); font-family: var(--dashboard-font-body); font-size: .82rem; font-weight: 400; line-height: 1.5; }
#dashboard .rd-reqs .rd-status { color: var(--gold-bright); }
#dashboard .rd-reqs li[data-state="done"] .rd-status { color: var(--success); }
#dashboard .rd-reqs .rd-detail { max-width: 78ch; color: var(--quiet); }
#dashboard .rd-points-flat { color: var(--gold-bright); font-size: .78rem; }
#dashboard .rd-reqs svg:last-child { width: 17px; height: 17px; fill: none; stroke: var(--gold-bright); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#dashboard .rd-queue svg:last-child, #dashboard .rd-reqs svg:last-child { transition: transform var(--rd-motion-fast) var(--rd-ease-out); }
#dashboard .rd-queue button:hover svg:last-child, #dashboard .rd-reqs > li > button:hover svg:last-child { transform: translateX(3px); }

@keyframes rd-enter {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes rd-disclose {
  from { opacity: .01; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes rd-check-in {
  from { opacity: 0; transform: scale(.7); }
  to { opacity: 1; transform: scale(1); }
}

@media (max-width: 1080px) {
  #dashboard .rd-plan { grid-template-columns: 1fr; }
  #dashboard .rd-side { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
}

@media (min-width: 1200px) {
  /* The readiness journey gets a little more room than a standard dashboard card. */
  #dashboard .rd-section { width: calc(100% + 48px); margin-inline: -24px; }
}

@media (max-width: 700px) {
  #dashboard .rd-section { margin-bottom: 2.4rem; }
  #dashboard .rd-section .panel-head { align-items: start; }
  #dashboard .rd-journey { display: flex; gap: .4rem; padding-bottom: .2rem; overflow-x: auto; scrollbar-width: none; }
  #dashboard .rd-journey::-webkit-scrollbar { display: none; }
  #dashboard .rd-journey li { flex: 0 0 150px; min-height: 56px; padding: 0 .4rem; }
  #dashboard .rd-journey li::after { display: none; }
  #dashboard .rd-journey li > span:last-child { background: transparent; }
  #dashboard .rd-journey small { font-size: .62rem; }
  #dashboard .rd-next { min-height: 0; padding: 1.25rem; }
  #dashboard .rd-next h3 { font-size: 1.9rem; }
  #dashboard .rd-next footer { align-items: stretch; }
  #dashboard .rd-next footer .ctrl-btn { width: 100%; }
  #dashboard .rd-side { grid-template-columns: 1fr; }
  #dashboard .rd-gates { grid-template-columns: 1fr; }
  #dashboard .rd-gates > div, #dashboard .rd-gates > div:nth-of-type(2) { border-top: 1px solid var(--line); border-inline-start: 0; padding: .5rem .2rem; }
  #dashboard .rd-phase { border-radius: 14px; }
  #dashboard .rd-phase summary { grid-template-columns: 36px minmax(0, 1fr) auto; gap: .75rem; min-height: 86px; padding: .9rem; }
  #dashboard .rd-phase-toggle { display: none; }
  #dashboard .rd-phase-copy > small { white-space: normal; }
  #dashboard .rd-phase-body { padding-inline: .75rem; }
  #dashboard .rd-reqs > li > * { grid-template-columns: 23px minmax(0, 1fr) auto 15px; gap: .65rem; padding-inline: .2rem; }
  #dashboard .rd-phase-progress { font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
  #dashboard .rd-section { --rd-motion-fast: 0ms; --rd-motion-standard: 0ms; --rd-motion-enter: 0ms; }
  #dashboard .rd-section *, #dashboard .rd-section *::before, #dashboard .rd-section *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
