/* Analyze-a-clip page (Signal Console). Upload zone + audio-based report. */

.clip-wrap { max-width: 760px; width: 100%; margin: 0 auto; }

.clip-hero { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; border-bottom: 1px solid var(--border); margin-bottom: 22px; }
.clip-hero .ic { width: 46px; height: 46px; flex: none; }
.clip-hero .ic img { width: 100%; height: 100%; display: block; }
.clip-hero h1 { margin: 0 0 3px; font-family: var(--font-display); font-size: 22px; }
.clip-hero p { margin: 0; font-size: 13px; color: var(--text-dim); line-height: 1.5; }

/* drop zone */
.clip-drop { border: 1.5px dashed var(--border-strong); border-radius: var(--r-lg); padding: 34px 20px;
  text-align: center; background: var(--surface); transition: border-color .15s, background .15s; }
.clip-drop.over { border-color: var(--blue); background: rgba(46, 107, 255, .06); }
.clip-drop .dz-ic { width: 46px; height: 46px; margin: 0 auto 12px; color: var(--blue-bright); }
.clip-drop h3 { margin: 0 0 4px; font-size: 15.5px; font-family: var(--font-display); }
.clip-drop p { margin: 0 0 16px; font-size: 12.5px; color: var(--text-dim); }
.clip-drop.has-file { border-style: solid; border-color: var(--blue); }
.clip-fname { display: none; font-family: var(--font-mono); font-size: 12.5px; color: var(--blue-bright); margin-bottom: 14px; word-break: break-all; }
.clip-drop.has-file .clip-fname { display: block; }
.clip-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

.clip-state { margin: 16px 0 0; font-size: 13px; padding: 11px 14px; border-radius: var(--r-md);
  border: 1px solid var(--border); background: var(--surface-2); color: var(--text); }
.clip-state.busy { color: var(--blue-bright); border-color: var(--blue-line); }
.clip-state.busy::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; vertical-align: -1px;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: clip-spin .7s linear infinite; }
.clip-state.err { color: var(--red); border-color: rgba(240, 85, 107, .4); background: rgba(240, 85, 107, .08); }
@keyframes clip-spin { to { transform: rotate(360deg); } }

/* report */
.clip-report { margin-top: 24px; }
.cr-hero { display: flex; align-items: center; gap: 20px; padding: 20px; border-radius: var(--r-lg);
  border: 1px solid var(--border); background: var(--surface-2); }
.cr-ring { width: 84px; height: 84px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: conic-gradient(var(--blue) 0 var(--p, 70%), var(--surface-3) 0 100%); position: relative; }
.cr-ring::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--surface-2); }
.cr-ring b { position: relative; font-family: var(--font-mono); font-size: 26px; font-weight: 700; line-height: 1; color: var(--text); }
.cr-ring small { position: relative; font-family: var(--font-mono); font-size: 10px; color: var(--text-faint); display: block; text-align: center; margin-top: 2px; }
.cr-ring.good { --p: 88%; } .cr-ring.ok { --p: 66%; } .cr-ring.warn { --p: 42%; }
.cr-ring.good { background: conic-gradient(var(--green) 0 var(--p), var(--surface-3) 0 100%); }
.cr-ring.warn { background: conic-gradient(var(--red) 0 var(--p), var(--surface-3) 0 100%); }
.cr-head h2 { margin: 0 0 4px; font-family: var(--font-display); font-size: 19px; }
.cr-head p { margin: 0; font-size: 12.5px; color: var(--text-dim); }

.cr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
@media (max-width: 560px) { .cr-grid { grid-template-columns: 1fr; } }
.cr-card { border: 1px solid var(--border); border-left-width: 4px; border-radius: var(--r-md); padding: 14px 16px; background: var(--surface); }
.cr-card.good { border-left-color: var(--green); }
.cr-card.ok { border-left-color: var(--amber); }
.cr-card.warn { border-left-color: var(--red); }
.cr-lbl { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-faint); }
.cr-val { font-family: var(--font-display); font-size: 26px; font-weight: 700; margin: 4px 0 6px; }
.cr-val span { font-family: var(--font-mono); font-size: 13px; font-weight: 400; color: var(--text-dim); }
.cr-msg { font-size: 12.5px; color: var(--text-dim); line-height: 1.4; }

.cr-note { margin-top: 14px; font-size: 12px; color: var(--text-faint); padding: 10px 14px;
  border: 1px dashed var(--border-strong); border-radius: var(--r-md); }
.cr-tx { margin-top: 14px; }
.cr-tx summary { cursor: pointer; font-size: 13px; color: var(--blue-bright); font-family: var(--font-display); }
.cr-tx p { margin: 10px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--text); white-space: pre-wrap;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 14px; }
