/* Quiet placeholders occupy only the route's changing content. */
.page-placeholder{min-height:460px}.skeleton-line{display:block;height:12px;max-width:100%;background:var(--line);border-radius:5px;opacity:.55}.skeleton-heading{display:grid;gap:18px}.skeleton-heading .skeleton-line:first-child{height:32px}.skeleton-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px;border:0}.skeleton-row:last-child{border:0}.skeleton-form{display:grid;grid-template-columns:1fr 1fr;gap:28px}.skeleton-input{height:44px;border:0;background:var(--raised);border-radius:10px;margin-top:12px}.skeleton-textarea{height:150px;border:0;background:var(--raised);border-radius:10px;grid-column:1/-1}.skeleton-chat{display:grid;grid-template-columns:260px 1fr;min-height:500px;border:0;border-radius:var(--radius);background:var(--surface);overflow:hidden}.skeleton-chat>aside{border:0;padding:16px}.skeleton-chat>section{position:relative;display:flex;flex-direction:column;gap:28px;padding:32px}.skeleton-composer{height:86px;position:absolute;bottom:20px;left:24px;right:24px;border:0;background:var(--raised);border-radius:12px}.skeleton-matching{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.skeleton-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.skeleton-metrics .panel{display:grid;gap:20px}.page-pending .app-content{position:relative}.page-pending .app-content:before{content:"";position:absolute;top:-12px;left:0;right:0;height:2px;background:var(--accent-soft);border-radius:2px}.initial-placeholder{min-height:65vh;padding-top:40px}.initial-placeholder .skeleton-line{margin:25px 0}.route-error{padding:32px 0}.route-error p{margin:16px 0 24px;color:var(--muted)}
@media(max-width:760px){.skeleton-chat{grid-template-columns:1fr;min-height:440px}.skeleton-chat>aside{display:none}.skeleton-matching{grid-template-columns:1fr}.skeleton-matching>aside{display:none}.skeleton-form{grid-template-columns:1fr}.skeleton-metrics{grid-template-columns:1fr 1fr}.skeleton-metrics .panel:last-child{display:none}.page-placeholder{min-height:420px}}

/* A refreshed label is crossed out, then replaced; the rest of the page stays still. */
.content-refresh-out{animation:content-refresh-out 200ms ease both;text-decoration-line:line-through;text-decoration-thickness:.08em;text-decoration-color:currentColor;text-decoration-skip-ink:none;will-change:opacity}
.content-refresh-in{animation:content-refresh-in 180ms ease-out both;will-change:opacity}
@keyframes content-refresh-out{0%{opacity:1;text-decoration-color:transparent}40%{opacity:1;text-decoration-color:currentColor}100%{opacity:0;text-decoration-color:currentColor}}
@keyframes content-refresh-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.content-refresh-out,.content-refresh-in{animation:none;text-decoration:none;will-change:auto}}
