/* =============================================================================
   Audiogram - the preview, the fragment picker on the waveform, the photo
   control, the recording bar and the finished film.
   ============================================================================= */
.ag-canvas{display:block;max-width:100%;border-radius:var(--r-xs);background:#000;box-shadow:0 0 0 1px var(--rule-d)}

.ag-player{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;width:100%}
.ag-play{
  display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;
  border:1px solid var(--olive);background:var(--olive);color:var(--ink);
  transition:background .26s var(--ease),border-color .26s var(--ease),transform 160ms var(--ease-out);
}
.ag-play:hover{background:var(--bone);border-color:var(--bone)}
.ag-play:active{transform:scale(.94)}
.ag-play[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.ag-play svg{width:18px;height:18px;fill:currentColor}
.ag-play__off,.ag-play.is-playing .ag-play__on{display:none}
.ag-play.is-playing .ag-play__off{display:block}
.ag-time{min-width:9ch;font-size:12px;letter-spacing:.06em;color:var(--fg-2);font-variant-numeric:tabular-nums}
.ag-add,.ag-img__pick{display:inline-flex;align-items:center;min-height:40px;cursor:pointer}
.ag-add:has(input:focus-visible),.ag-img__pick:has(input:focus-visible){outline:2px solid var(--olive);outline-offset:3px}
.ag-add:has(input:disabled),.ag-img__pick:has(input:disabled){opacity:.45;cursor:not-allowed}

/* The picker: the whole recording in a thin strip (long files only), and
   below it the part around the fragment, with a handle at each end. */
.ag-pick{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px}
.ag-over{position:relative;height:34px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}
.ag-over__wave,.ag-detail__wave{display:block;width:100%;height:100%}
.ag-over::after{
  content:"";position:absolute;top:0;bottom:0;left:var(--v0,0%);width:var(--vw,0%);pointer-events:none;
  border:1px solid rgba(250,250,247,.4);border-radius:4px;
}
.ag-detail{
  position:relative;height:88px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;
  border-top:1px solid var(--rule-d);border-bottom:1px solid var(--rule-d);
}
.ag-detail__wave{position:absolute;inset:0}
.ag-sel{position:absolute;top:0;bottom:0;background:rgba(204,211,118,.1)}
.ag-sel__body{position:absolute;inset:0;cursor:grab}
.ag-detail.is-drag .ag-sel__body{cursor:grabbing}
.ag-handle{
  position:absolute;top:-6px;bottom:-6px;width:28px;margin-left:-14px;
  display:flex;justify-content:center;cursor:ew-resize;
}
.ag-handle--a{left:0}
.ag-handle--b{left:100%}
.ag-handle span{position:relative;display:block;width:3px;height:100%;border-radius:2px;background:var(--olive)}
.ag-handle span::after{
  content:"";position:absolute;top:50%;left:50%;width:12px;height:30px;border-radius:999px;
  background:var(--olive);transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--ink-2);
  transition:transform 160ms var(--ease-out);
}
.ag-handle:hover span::after,.ag-detail.is-drag .ag-handle span::after{transform:translate(-50%,-50%) scaleY(1.12)}
.ag-handle:focus-visible,.ag-sel__body:focus-visible{outline:2px solid var(--bone);outline-offset:2px;border-radius:4px}
.ag-head{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--bone);pointer-events:none}
.ag-range{font-size:11px;letter-spacing:.08em;color:var(--fg-2);text-align:center;font-variant-numeric:tabular-nums}

.ag-img{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.ag-img__thumb{width:40px;height:40px;border-radius:var(--r-xs);object-fit:cover;background:var(--ink-3)}
.ag-img + .pills{margin-top:12px}
#agRoot .gen__action{min-height:40px}
#agRoot .tool__panel .pill:has(input:disabled),#agRoot .tool__panel .swatch:has(input:disabled),
#agRoot .tool__panel .range:has(input:disabled),#agRoot .tool__panel .field:has(input:disabled){opacity:.5}
#agRoot .tool__panel input:disabled{cursor:not-allowed}

/* Recording: the bar and the percentage. */
.ag-progress{display:flex;align-items:center;gap:14px}
.ag-bar{
  -webkit-appearance:none;appearance:none;flex:1;display:block;height:4px;border:0;border-radius:4px;
  background:rgba(250,250,247,.12);color:var(--olive);overflow:hidden;
}
.ag-bar::-webkit-progress-bar{background:rgba(250,250,247,.12);border-radius:4px}
.ag-bar::-webkit-progress-value{background:var(--olive);border-radius:4px}
.ag-bar::-moz-progress-bar{background:var(--olive);border-radius:4px}
.ag-pct{min-width:4ch;font-size:12px;letter-spacing:.04em;color:var(--olive);text-align:right;font-variant-numeric:tabular-nums}
#agRoot.is-recording .ag-canvas{box-shadow:0 0 0 2px var(--olive)}
#agRoot.is-recording .ag-pick{opacity:.55;pointer-events:none}

.ag-result{display:flex;justify-content:center}
.ag-video{display:block;max-width:100%;max-height:min(70vh,640px);border-radius:var(--r-sm);background:#000}

@media (max-width:560px){
  .ag-detail{height:76px}
  .ag-handle{width:36px;margin-left:-18px}
}
