/* Launch card controls; the shell supplies the --boot-* palette. */
.release-preparation { color-scheme: dark; color: var(--boot-text, #eef2f8); display: flex; flex-direction: column;
  gap: 16px; text-align: center; font-size: 1rem; line-height: 1.5; }
.release-preparation:empty { display: none; }
.release-preparation h2 { margin: 0; font-size: 1.375rem; font-weight: 650; letter-spacing: .02em; }
.release-preparation p { margin: 0; overflow-wrap: anywhere; }
.release-preparation p:empty { display: none; }
.release-preparation [data-role="summary"], .release-preparation [data-role="progress"] {
  color: var(--boot-muted, #9fb0c5); font-size: .9rem; line-height: 1.6; text-wrap: pretty; }
.release-figure { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 18px 12px;
  border: 1px solid rgba(242, 181, 68, .24); border-radius: 14px; background: rgba(242, 181, 68, .07); }
.release-figure span { color: var(--boot-muted, #9fb0c5); font-size: .85rem; letter-spacing: .06em; }
.release-figure span:empty { display: none; }
.release-figure [data-role="figure-note"] { letter-spacing: normal; }
.release-figure strong { color: var(--boot-accent-soft, #f7c865); font-size: 2.25rem; font-weight: 700; line-height: 1.2;
  font-variant-numeric: tabular-nums; }
.release-meter { display: flex; flex-direction: column; gap: 10px; text-align: left; }
.release-meter-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.release-meter-head strong { font-size: 1.75rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.release-meter-head span { color: var(--boot-muted, #9fb0c5); font-size: .9rem; font-variant-numeric: tabular-nums; }
.release-preparation [data-role="progress"] { text-align: center; min-height: 1.6em; }
.release-preparation [data-role="progress"]:empty { display: block; }
.release-actions { display: flex; gap: 10px; }
.release-actions > button { flex: 1 1 0; }
.release-actions > .release-primary { flex-grow: 2; }

/* Shared by the shell's own launch buttons. */
.release-preparation button, .boot-button { min-height: 48px; padding: 10px 16px; border: 1px solid rgba(148, 170, 196, .35);
  border-radius: 10px; color: var(--boot-text, #eef2f8); background: rgba(33, 51, 72, .9); font: inherit; font-size: .95rem;
  cursor: pointer; max-width: 100%; overflow-wrap: anywhere; transition: background-color .15s, border-color .15s, filter .15s; }
.release-preparation button:hover, .boot-button:hover { background-color: #2a4058; border-color: rgba(148, 170, 196, .6); }
.release-preparation button:focus-visible, .boot-button:focus-visible {
  outline: 2px solid var(--boot-accent-soft, #f7c865); outline-offset: 2px; }
.release-preparation button:disabled { opacity: .6; cursor: wait; }
.release-preparation .release-primary, .boot-button.boot-primary { min-height: 52px; border: 0; color: #1c1407;
  font-weight: 700; font-size: 1.05rem; letter-spacing: .06em;
  background: linear-gradient(180deg, #f8cc6c, var(--boot-accent, #e39b2d));
  box-shadow: 0 6px 20px rgba(227, 155, 45, .28), inset 0 1px 0 rgba(255, 255, 255, .35); }
.release-preparation .release-primary:hover, .boot-button.boot-primary:hover {
  background: linear-gradient(180deg, #f8cc6c, var(--boot-accent, #e39b2d)); filter: brightness(1.08); }
.release-preparation .release-link, .boot-button.boot-link { align-self: center; min-height: 40px; padding: 6px 10px; border: 0;
  background: none; color: var(--boot-muted, #9fb0c5); font-size: .85rem; text-decoration: underline;
  text-underline-offset: 3px; }
.release-preparation .release-link:hover, .boot-button.boot-link:hover { background: none; color: var(--boot-text, #eef2f8); }

.release-preparation progress, .boot-progress { -webkit-appearance: none; appearance: none; display: block; width: 100%;
  height: 10px; border: 0; border-radius: 999px; overflow: hidden; background: var(--boot-track, #1f2c3f); }
.release-preparation progress::-webkit-progress-bar, .boot-progress::-webkit-progress-bar {
  background: var(--boot-track, #1f2c3f); border-radius: 999px; }
.release-preparation progress::-webkit-progress-value, .boot-progress::-webkit-progress-value {
  background: linear-gradient(90deg, var(--boot-accent, #e39b2d), var(--boot-accent-soft, #f7c865));
  border-radius: 999px; transition: width .25s ease; }
.release-preparation progress::-moz-progress-bar, .boot-progress::-moz-progress-bar {
  background: linear-gradient(90deg, var(--boot-accent, #e39b2d), var(--boot-accent-soft, #f7c865)); border-radius: 999px; }
.release-preparation progress:indeterminate, .boot-progress:indeterminate {
  background: linear-gradient(90deg, transparent 30%, rgba(247, 200, 108, .85) 50%, transparent 70%) 0 0 / 250% 100% no-repeat,
    var(--boot-track, #1f2c3f);
  animation: boot-progress-sweep 1.4s linear infinite; }
.release-preparation progress:indeterminate::-webkit-progress-bar, .boot-progress:indeterminate::-webkit-progress-bar {
  background: transparent; }
.release-preparation progress:indeterminate::-moz-progress-bar, .boot-progress:indeterminate::-moz-progress-bar {
  background: transparent; }
@keyframes boot-progress-sweep { from { background-position: 100% 0, 0 0; } to { background-position: 0 0, 0 0; } }
@media (prefers-reduced-motion: reduce) {
  .release-preparation progress:indeterminate, .boot-progress:indeterminate { animation: none; }
  .release-preparation progress::-webkit-progress-value, .boot-progress::-webkit-progress-value { transition: none; }
}
.release-preparation [hidden] { display: none !important; }
@media (max-width: 480px), (max-height: 480px) {
  .release-preparation { gap: 12px; }
  .release-preparation h2 { font-size: 1.2rem; }
  .release-figure { padding: 12px; }
  .release-figure strong { font-size: 1.875rem; }
  .release-meter-head strong { font-size: 1.5rem; }
}
