.bootstrap-splash { position: fixed; inset: 0; display: grid; place-items: center; background: var(--chrome-bg, #141414); color: var(--chrome-fg, #eee); font-family: 'Inter Variable', 'Inter', system-ui, sans-serif; z-index: 9999; padding: 2rem; } .bootstrap-splash__card { width: 100%; max-width: 560px; background: color-mix(in srgb, var(--chrome-fg, #eee) 4%, transparent); border: 1px solid color-mix(in srgb, var(--chrome-fg, #eee) 10%, transparent); border-radius: 14px; padding: 2rem; text-align: left; } .bootstrap-splash__title-row { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 0.5rem; } .bootstrap-splash__card h1 { margin: 0; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.01em; } .bootstrap-splash__version { font-size: 0.72rem; opacity: 0.45; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums; } .bootstrap-splash__region { margin-left: auto; display: flex; align-items: center; } .bootstrap-splash__region-select { background: color-mix(in srgb, var(--chrome-fg, #eee) 8%, transparent); border: 1px solid color-mix(in srgb, var(--chrome-fg, #eee) 12%, transparent); color: inherit; font: inherit; font-size: 0.72rem; padding: 0.25rem 0.5rem; border-radius: 6px; cursor: pointer; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.4rem center; padding-right: 1.4rem; transition: all 0.15s ease; } .bootstrap-splash__region-select:hover { background-color: color-mix(in srgb, var(--chrome-fg, #eee) 14%, transparent); } .bootstrap-splash__region-select:focus { outline: 1px solid var(--chrome-accent, #8ec07c); outline-offset: 1px; } .bootstrap-splash__region-select option { background: #1a1a1a; color: #eee; } .bootstrap-splash__status { margin: 0 0 1.25rem; font-size: 0.95rem; opacity: 0.85; } .bootstrap-splash__bar { height: 4px; width: 100%; border-radius: 3px; background: color-mix(in srgb, var(--chrome-fg, #eee) 8%, transparent); overflow: hidden; margin-bottom: 1.25rem; } .bootstrap-splash__bar-fill { height: 100%; background: var(--chrome-accent, #8ec07c); transition: width 0.4s ease; } .bootstrap-splash__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.85rem; } .bootstrap-splash__steps li { padding-left: 1.5rem; position: relative; opacity: 0.5; } .bootstrap-splash__steps li::before { content: '○'; position: absolute; left: 0; top: 0; } .bootstrap-splash__steps li.done { opacity: 0.6; } .bootstrap-splash__steps li.done::before { content: '✓'; color: var(--chrome-accent, #8ec07c); } .bootstrap-splash__steps li.active { opacity: 1; font-weight: 500; } .bootstrap-splash__steps li.active::before { content: '●'; color: var(--chrome-accent, #8ec07c); animation: bootstrap-pulse 1.4s ease-in-out infinite; } @keyframes bootstrap-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } .bootstrap-splash__error { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 0.8rem; background: color-mix(in srgb, #ef4444 12%, transparent); border: 1px solid color-mix(in srgb, #ef4444 35%, transparent); color: #fca5a5; padding: 0.75rem 1rem; border-radius: 8px; white-space: pre-wrap; word-break: break-word; max-height: 250px; overflow-y: auto; user-select: text; } .bootstrap-splash__sub-progress { margin: -0.5rem 0 1rem; display: flex; flex-direction: column; gap: 0.4rem; } .bootstrap-splash__sub-bar { height: 3px; width: 100%; border-radius: 2px; background: color-mix(in srgb, var(--chrome-fg, #eee) 6%, transparent); overflow: hidden; } .bootstrap-splash__sub-bar-fill { height: 100%; background: color-mix(in srgb, var(--chrome-accent, #8ec07c) 70%, transparent); transition: width 0.2s ease; } .bootstrap-splash__sub-label { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 0.72rem; opacity: 0.65; } .bootstrap-splash__log-header { display: flex; align-items: center; gap: 0.5rem; margin-top: 1.25rem; } .bootstrap-splash__log-toggle { background: none; border: none; color: inherit; opacity: 0.65; font: inherit; font-size: 0.78rem; padding: 0.25rem 0; cursor: pointer; text-align: left; } .bootstrap-splash__log-toggle:hover { opacity: 1; } .bootstrap-splash__log-count { flex: 1; opacity: 0.45; font-size: 0.72rem; font-variant-numeric: tabular-nums; } .bootstrap-splash__logs { margin: 0.5rem 0 0; max-height: 280px; min-height: 100px; overflow-y: auto; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 0.72rem; line-height: 1.45; background: color-mix(in srgb, var(--chrome-fg, #eee) 4%, transparent); border: 1px solid color-mix(in srgb, var(--chrome-fg, #eee) 8%, transparent); border-radius: 8px; padding: 0.6rem 0.75rem; white-space: pre-wrap; word-break: break-word; opacity: 0.85; user-select: text; } .bootstrap-splash__copy-btn { margin-top: 0.5rem; background: color-mix(in srgb, var(--chrome-fg, #eee) 8%, transparent); border: 1px solid color-mix(in srgb, var(--chrome-fg, #eee) 12%, transparent); color: inherit; font: inherit; font-size: 0.75rem; padding: 0.35rem 0.75rem; border-radius: 6px; cursor: pointer; transition: all 0.15s; } .bootstrap-splash__copy-btn:hover { background: color-mix(in srgb, var(--chrome-fg, #eee) 14%, transparent); } /* ── Error hints + retry actions ── */ .bootstrap-splash__hints { margin-top: 0.75rem; font-size: 0.8rem; opacity: 0.9; line-height: 1.5; } .bootstrap-splash__hints strong { display: block; margin-bottom: 0.35rem; } .bootstrap-splash__hints ul { margin: 0; padding-left: 1.25rem; display: flex; flex-direction: column; gap: 0.25rem; } .bootstrap-splash__hints li { opacity: 0.85; } .bootstrap-splash__actions { display: flex; gap: 0.5rem; margin-top: 1rem; } .bootstrap-splash__retry-btn { flex: 1; padding: 0.5rem 1rem; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--chrome-fg, #eee) 15%, transparent); background: color-mix(in srgb, var(--chrome-accent, #8ec07c) 15%, transparent); color: var(--chrome-fg, #eee); font: inherit; font-size: 0.82rem; font-weight: 500; cursor: pointer; transition: all 0.15s; } .bootstrap-splash__retry-btn:hover:not(:disabled) { background: color-mix(in srgb, var(--chrome-accent, #8ec07c) 25%, transparent); } .bootstrap-splash__retry-btn:disabled { opacity: 0.5; cursor: wait; } .bootstrap-splash__retry-btn--danger { background: color-mix(in srgb, #ef4444 12%, transparent); border-color: color-mix(in srgb, #ef4444 30%, transparent); } .bootstrap-splash__retry-btn--danger:hover:not(:disabled) { background: color-mix(in srgb, #ef4444 22%, transparent); }