.row-state.failed,.inspector-state[data-state=failed]{color:#ff8594}
.solve-report .inspector-heading h2{font-size:15px;overflow-wrap:anywhere;color:#b9c2dd;min-width:0}
.solve-report .inspector-state{flex-shrink:0}
.solve-report .inspector-media{position:relative}
.solve-report .replay-video-choice{position:absolute;top:12px;right:12px;z-index:2;display:flex;gap:3px;padding:4px;border:1px solid #ffffff1c;border-radius:10px;background:#111936b8;backdrop-filter:blur(16px)}
.replay-video-choice button{border:0;border-radius:7px;padding:7px 13px;background:transparent;color:#d0d7eb;font-size:11px;cursor:pointer}
.replay-video-choice button[aria-pressed=true]{background:#8d8aff40;color:#fff}
.solve-report [hidden]{display:none!important}
.solve-report .inspector-metrics>div:first-child{grid-column:1/-1}
.solve-report .inspector-metrics>div:nth-child(2){grid-column:1/-1;padding-block:10px;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.solve-report .inspector-metrics>div:nth-child(2) strong{font-size:18px;margin:0;letter-spacing:0}
.solve-report .frame-rate-warning{margin:22px 4px 0;padding:14px 16px;border:0;background:#ffd18a08;font-size:12px;line-height:1.7;color:#c5b391}
.inspector-note:empty{display:none}
.solve-report .report-scramble{border:0;padding:18px;margin-top:16px;background:#0b1022;border-radius:12px}
.report-scramble h3{font-size:11px;color:#949fbd;font-weight:500;margin:0 0 8px}
.solve-report .report-scramble p{font:14px/1.9 var(--mono);margin:0;overflow-wrap:anywhere;color:#e0e5f5}
.report-wave{height:120px;cursor:crosshair;background:repeating-linear-gradient(to top,#ffffff08 0 1px,transparent 1px 30px)}
.report-wave svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}
.report-wave svg path{fill-opacity:.22;stroke-width:2;vector-effect:non-scaling-stroke}
.report-wave-cursor{top:0;bottom:0}
.report-wave-value{position:absolute;top:0;right:0;font:11px var(--mono);color:#eef0ff;background:#0b1022c9;pointer-events:none}
.report-time-split{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap}
.report-time-split>div{padding:12px 14px;border-radius:8px;font-size:11px;background:#8f87ff24;color:#d2ccff}
.report-time-split .recognition{background:#a7b0c41a;color:#bec8df}
.report-phase-table td button:before{display:none}
.report-move-group{border-left:0}
#desk-cube.adjustable{cursor:grab;touch-action:none}
#desk-cube.adjustable:active{cursor:grabbing}
#reset-solver-angle{position:absolute;bottom:34px;left:14px;border:0;border-radius:5px;background:#111936b8;color:#bfc7e0;padding:5px 8px;font-size:10px;cursor:pointer}
@media(max-width:650px){.solve-report .inspector-metrics>div:first-child strong{font-size:42px}.cube-caption{display:block;font-size:9px}.replay-video-choice button{padding:7px 10px}}
/* Stage identity is shared with the library; labels carry color without side bars. */
.report-wave-labels button>span,.report-phase-table td button,.report-move-group strong{color:var(--phase)}
.report-wave-labels button>span{font-weight:600}
.report-pause-span{position:absolute;inset-block:0;background:#c7ccdf20;border-inline:1px solid #d6ddf126;pointer-events:none}
.report-pause-key{margin-left:12px;white-space:nowrap}
.report-pause-key:before{content:'';display:inline-block;width:9px;height:9px;background:#c7ccdf40;border-radius:2px;margin-right:5px}
.preview-stage-strip{gap:0}
.preview-stage-strip i{min-width:0}
.preview-stage-detail .stage-duration-track i{min-width:0}
#preview-state[data-state=failed]{color:#ff8594}
#preview-state[data-state=partial]{color:#ffd18a}
#preview-state[data-state=ready]{color:#39d18b}
.report-case-label{display:block;color:#a8b2cc;font:10px var(--sans);margin-top:5px}
/* Small, always-visible case diagrams next to their phase. */
.report-case{display:inline-flex;align-items:center;gap:7px;color:#a8b2cc;font:10px var(--sans);white-space:normal}
.report-case svg{display:block;width:44px;height:44px;flex:0 0 44px}
.report-case-label{margin-top:4px}
@media(max-width:650px){.report-pause-key{display:block;margin:4px 0 0;text-align:right}.report-move-group>div:first-child:has(.report-case-label){flex-wrap:wrap}.report-move-group .report-case-label{flex-basis:100%}}

#solver-angle-status{position:absolute;bottom:12px;left:14px;right:14px;text-align:center;font-size:10px;color:#a8b2cc}
#solver-angle-status:empty{display:none}

/* Processing uses the same quiet navy surfaces and violet accents as the report. */
.processing-screen { max-width: 740px; margin: 28px auto 0; padding: 32px; border: 1px solid #ffffff10; border-radius: 18px; background: #111936; text-align: center; color: #eef0ff; }
.processing-file { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; padding: 8px 12px; border: 1px solid #ffffff0e; border-radius: 8px; background: #11193680; font-size: 11px; color: #a8b2cc; }
.processing-file > span:first-child { color: #71d5b0; }
.processing-file > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.processing-file small { flex-shrink: 0; padding-left: 10px; border-left: 1px solid #ffffff14; color: #7f8ba9; font-size: 10px; }
.processing-cube { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; width: 76px; height: 76px; margin: 44px auto 32px; transform: rotate(-8deg); }
.processing-cube::before { content: ''; position: absolute; inset: -34px; background: radial-gradient(circle, #8d8aff1f, transparent 70%); pointer-events: none; }
.processing-cube i { border: 1px solid #b9b5ff38; border-radius: 5px; background: #8d8aff40; animation: processing-tile 3s ease-in-out infinite; animation-delay: calc(var(--tile) * 130ms); }
.processing-eyebrow, .guest-save-label { color: #8e91b9; font-size: 10px; font-weight: 600; letter-spacing: 1.5px; }
.processing-screen h1 { margin: 14px 0 12px; font-size: clamp(26px, 4vw, 36px); line-height: 1.2; font-weight: 550; letter-spacing: -1px; }
.processing-heading p { margin: 0 auto; max-width: 440px; min-height: 44px; color: #9ba5c2; font-size: 13px; line-height: 1.7; }
.processing-stages { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; margin: 38px 0 24px; padding: 0; }
.processing-stages li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; color: #6f7b9b; font-size: 11px; }
.processing-stages li:not(:last-child)::after { content: ''; position: absolute; top: 16px; left: calc(50% + 25px); width: calc(100% - 50px); height: 1px; background: #ffffff10; }
.processing-stage-mark { display: grid; place-items: center; width: 33px; height: 33px; border: 1px solid #ffffff14; border-radius: 50%; background: #0b122b; font: 10px var(--mono); }
.processing-stages .complete { color: #a8b2cc; }
.processing-stages .complete .processing-stage-mark { color: #87d5ba; border-color: #87d5ba30; background: #87d5ba0a; }
.processing-stages .complete::after { background: #8d8aff45 !important; }
.processing-stages .active { color: #d4d1ff; }
.processing-stages .active .processing-stage-mark { border-color: #a5a7ff; color: #e0deff; background: #8d8aff24; box-shadow: 0 0 0 5px #8d8aff0a; }
.processing-screen .processing-connection { margin: 28px auto 0; max-width: 420px; color: #7f8ba9; font-size: 11px; line-height: 1.8; }
.guest-report-save { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 24px 0; padding: 24px; border: 1px solid #ffffff10; border-radius: 14px; background: #111936; color: #eef0ff; }
.solve-report[data-state="working"] .guest-report-save { max-width: 740px; margin: 16px auto 40px; }
.guest-report-save h2 { margin: 8px 0; font-size: 16px; font-weight: 550; letter-spacing: -.3px; }
.guest-report-save p { max-width: 310px; margin: 0; color: #929fbd; font-size: 12px; line-height: 1.7; }
.guest-save-action { flex: 0 0 226px; text-align: center; }
.guest-save-action a { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 14px; border: 1px solid #a5a7ff40; border-radius: 9px; background: #8d8aff1c; color: #e0deff; font-size: 12px; transition: background .15s, border-color .15s; }
.guest-save-action a:hover { background: #8d8aff32; border-color: #a5a7ff80; }
.guest-save-action a:focus-visible { outline: 2px solid #a5a7ff; outline-offset: 4px; }
.guest-save-action img { object-fit: contain; }
.guest-save-action a > span { margin-left: auto; }
.guest-save-action small { display: block; margin-top: 10px; color: #7f8ba9; font-size: 10px; line-height: 1.6; }
@keyframes processing-tile { 0%, 65%, 100% { background: #8d8aff30; transform: translateY(0); } 30% { background: #a5a7ff88; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .processing-cube i { animation: none; } }
@media (max-width: 600px) {
 .processing-screen { margin-top: 20px; padding: 24px 16px; border-radius: 14px; }
 .processing-cube { margin-top: 32px; }
 .processing-stages { margin-top: 28px; }
 .processing-stages li { font-size: 10px; }
 .guest-report-save { flex-direction: column; align-items: stretch; gap: 20px; padding: 20px; }
 .guest-save-action { flex-basis: auto; }
 .guest-report-save p { max-width: none; }
}
.solve-report[data-state="working"] .desk-inspector { display: none; }

.solve-report .report-unavailable { padding: 32px; border: 1px solid #ffffff10; border-radius: 18px; background: #111936; }

/* Elapsed time and queue information are one quiet status strip. */
.processing-screen .processing-meta { display: flex; align-items: center; justify-content: center; gap: 24px; max-width: 500px; margin: 24px auto 0; padding: 18px 22px; border: 1px solid #a5a7ff16; border-radius: 12px; background: #0b1228; text-align: left; }
.processing-screen .processing-timer { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.processing-screen .processing-timer svg { width: 22px; height: 22px; fill: none; stroke: #9296cd; stroke-width: 1.5; stroke-linecap: round; }
.processing-screen .processing-timer>div { display: grid; gap: 5px; }
.processing-screen .processing-timer span { font-size: 10px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: #7f8ba9; }
.processing-screen #processing-elapsed { font: 500 23px var(--mono); font-variant-numeric: tabular-nums; line-height: 1; color: #d2ccff; letter-spacing: -.5px; }
.processing-screen #processing-queue { margin: 0; padding-left: 24px; border-left: 1px solid #a5a7ff20; font-size: 12px; line-height: 1.7; color: #9ba6c3; }
.processing-screen #processing-extended { max-width: 500px; margin: 16px auto 0; padding: 14px 18px; background: #a5a7ff08; border-color: #a5a7ff20; color: #b0bad2; font-size: 12px; line-height: 1.8; text-align: left; }
@media(max-width:500px) {
 .processing-screen .processing-meta { gap: 16px; padding: 16px; }
 .processing-screen #processing-queue { padding-left: 16px; font-size: 11px; }
}

.report-consent { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin: 14px 0; color: #9ba6c3; }
.report-consent svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.report-consent button { padding: 5px 0; border: 0; background: none; color: #b7b3e5; font: 12px var(--sans); cursor: pointer; }
.report-consent button:hover { color: white; text-decoration: underline; }
.consent-dialog { width: min(460px,calc(100vw - 32px)); max-height: calc(100svh - 32px); overflow: auto; padding: 24px; border: 1px solid #7f80b54d; border-radius: 16px; background: #11182e; color: #e8eafb; box-shadow: 0 24px 90px #0008; }
.consent-dialog::backdrop { background: #030817b8; backdrop-filter: blur(5px); }
.consent-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.consent-dialog h2 { margin: 0; font-size: 21px; letter-spacing: -.4px; }
.consent-dialog button { cursor: pointer; font: 13px var(--sans); }
.consent-dialog #consent-close { border: 0; background: none; color: #9ba6c3; font-size: 26px; padding: 0 5px; }
.consent-dialog p { font-size: 13px; line-height: 1.7; color: #a7b1ce; margin: 14px 0; }
.consent-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; border-block: 1px solid #ffffff12; font-size: 14px; cursor: pointer; }
.consent-switch { position: relative; width: 40px; height: 24px; flex-shrink: 0; }
.consent-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; }
.consent-switch>span { display: block; width: 40px; height: 24px; border-radius: 20px; background: #47516c; pointer-events: none; transition: background .15s; }
.consent-switch>span::after { content: ''; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: white; transition: transform .15s; }
.consent-switch input:checked+span { background: #7565e8; }
.consent-switch input:checked+span::after { transform: translateX(16px); }
.consent-switch input:focus-visible+span { outline: 2px solid #d4cbff; outline-offset: 3px; }
.consent-dialog .consent-fine-print { font-size: 12px; color: #909dbb; }
.consent-dialog a { color: #c5bdfa; text-decoration: underline; }
.consent-dialog #consent-feedback { color: #fca5a5; }
.consent-dialog #consent-feedback:empty { display: none; }
.consent-dialog footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.consent-dialog footer button { border: 1px solid #ffffff20; border-radius: 8px; padding: 10px 16px; color: #c3cbe3; background: transparent; }
.consent-dialog #consent-save { color: white; background: #685be0; border-color: #8c80f2; }
.consent-dialog button:disabled { opacity: .6; cursor: wait; }

.share-controls { display:flex; align-items:center; flex-shrink:0; }
.report-share-button { padding:6px 12px; border:1px solid #8c80f266; border-radius:7px; background:#685be026; color:#d8d2ff; font:12px var(--sans); cursor:pointer; white-space:nowrap; }
.report-share-button:hover { background:#685be04d; border-color:#8c80f2; }
.report-breakdown-heading,.report-breakdown-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.report-breakdown-actions { margin-left:auto; }
.report-copy-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:100px; height:32px; padding:0 8px; border:1px solid transparent; border-radius:7px; background:transparent; color:#9aa6c3; font:11px var(--sans); cursor:pointer; transition:color .15s,background .15s; }
.report-copy-button:hover { color:#e0e5f5; background:#ffffff08; }
.report-copy-button svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.report-copy-button .copy-check { display:none; }
.report-copy-button[data-state=copied] { color:#87d5ba; }
.report-copy-button[data-state=copied] .copy-icon { display:none; }
.report-copy-button[data-state=copied] .copy-check { display:block; }
.report-copy-button[data-state=error] { color:#ffd18a; }
#copy-reconstruction:disabled { opacity:.5; cursor:default; }
#copy-reconstruction:focus-visible { outline:2px solid #a5a7ff; outline-offset:3px; }
#copy-reconstruction-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.report-navigation .shared-notice { margin:0 0 0 auto; color:#b9c2dd; font-size:12px; }
@media(max-width:800px) { .shared-notice-detail { display:none; } }

.report-copy { position:relative; }
.report-copy-button .copy-chevron { width:12px; height:12px; color:#7f8baa; }
.report-copy-options { position:absolute; top:calc(100% + 6px); right:0; z-index:20; width:232px; padding:5px; border:1px solid #ffffff14; border-radius:10px; background:#141c33; box-shadow:0 12px 32px #0005; }
.report-copy-options[hidden] { display:none; }
.report-copy-options button { display:block; width:100%; padding:10px; border:0; border-radius:6px; background:transparent; text-align:left; color:#d9dff0; cursor:pointer; font:12px var(--sans); }
.report-copy-options button:hover,.report-copy-options button:focus-visible { background:#8d8aff14; outline:none; }
.report-copy-options strong { display:block; font-weight:500; }
.report-copy-options small { display:block; margin-top:4px; color:#8e9ab7; font-size:10px; }
.report-copy-options button:disabled { opacity:.45; cursor:default; }

/* The curve, colour stops, phase band and ruler share one time coordinate system.
   Labels stay inside their interval; the full name and exact times remain in the tooltip. */
.report-wave{margin-left:0;margin-right:0}
.report-wave-labels{position:relative;display:block;height:58px;margin-top:4px}
.report-wave-labels button{position:absolute;top:0;box-sizing:border-box;height:58px;display:block;border-top:3px solid var(--phase);padding:8px 0 0;overflow:hidden;text-align:left}
.report-wave-labels button>span,.report-wave-labels button>strong{display:block;white-space:nowrap;padding:0 3px}
.report-wave-labels button>strong{margin-top:5px}

.shared-replay-host{width:100%;height:360px;min-width:0;overflow:hidden}.replay-unavailable{display:grid;place-content:center;min-height:260px;padding:24px;color:#aab4c8;text-align:center;border:1px solid #344052;border-radius:16px;background:#111827}@media(max-width:480px){.shared-replay-host{height:290px}}

/* Reserve a row for the caption so tall replay canvases cannot cover it. */
.desk-cube-panel .cube-caption{position:static;justify-self:start;margin:8px 14px 14px;z-index:1}
#desk-cube.shared-replay-host{height:auto;aspect-ratio:1}
.desk-cube-panel .desk-view-switch{position:relative;inset:auto;transform:none;margin:10px 8px 0}
#desk-cube.shared-replay-host{margin-top:0}
/* Give retry actions and their explanation a full readable row on phone reports. */
@media(max-width:640px){
 .inspector-bottom{flex-wrap:wrap;gap:12px}
 .inspector-bottom>.primary-button{flex:1 1 100%;text-align:center}
 .inspector-bottom>.inspector-note{flex:1 1 100%;font-size:13px;line-height:1.5}
}
