/* css/library.css: the Episodes list, the clip library, a clip on a phone, admin.
   Part 7 of 10 of the app's stylesheet (app.css until Phase 3). Every page loads all the parts, in the
   order of CSS in lib/views/parts.js, so a later part still wins a tie, as further down the one file did. */
/* Phase 6: episodes, Clips library, phone, admin */
.row .t .sub {
  display: block;
  font-weight: 500;
  margin-top: 2px;
}
.opt.on {
  background: var(--edge);
  color: var(--bg);
}
.libep {
  margin-top: 10px;
}
.libep a {
  text-decoration: none;
}
a.pohook {
  text-decoration: none;
  display: block;
}
.phonetop {
  padding: 12px 16px;
}
.phone {
  max-width: 480px;
  margin: 0 auto;
  padding: 12px 16px 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pnav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.pnav .center {
  text-align: center;
  min-width: 0;
}
.pwho {
  font: 800 14px var(--body);
}
.round {
  width: 44px;
  height: 44px;
  flex: none;
  border: 3px solid var(--edge);
  border-radius: 999px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pstage {
  margin: 0 auto;
  width: min(300px, 76vw);
  box-shadow: 5px 5px 0 var(--edge);
  cursor: pointer;
}
.pstage .hookline {
  font-size: 22px;
}
.pstage .capline {
  font-size: 24px;
}
.pplay {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 60px;
  height: 60px;
  margin: -30px 0 0 -30px;
  border: 3px solid var(--edge);
  border-radius: 999px;
  background: var(--mustard);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.ptext {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ptext .opts {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 4px;
}
.opt.sm {
  min-height: 40px;
  padding: 4px 12px;
  font-size: 13px;
  flex: none;
}
.copybox {
  text-align: left;
  background: #fff;
  border: 2px solid var(--edge);
  border-radius: 12px;
  padding: 10px 12px;
  font: 500 15px/1.45 var(--body);
  color: var(--fg);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  white-space: pre-wrap;
}
.copybox .ph {
  font-size: 11px;
  color: var(--muted);
}
/* Schedule / Download stay on screen on any phone: the 9:16 video, the platform tabs and the post text pushed them
   below an 844 px screen. A bar stuck to the bottom of the screen, on the page's own background. */
.pacts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  position: sticky;
  bottom: 0;
  z-index: 3;
  background: var(--bg);
  border-top: 3px solid var(--edge);
  margin: 0 -16px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
}
.center {
  text-align: center;
}
.pbottom {
  display: flex;
  justify-content: space-around;
  gap: 8px;
  border-top: 3px solid var(--edge);
  padding-top: 12px;
  margin-top: 8px;
}
.pbottom a {
  font: 700 14px var(--body);
  text-decoration: none;
  padding: 8px 4px;
}
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 10px;
}
.stat {
  background: #fff;
  border: 3px solid var(--edge);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.stat b {
  font: 400 28px/1.1 var(--display);
}
.errlist {
  display: flex;
  flex-direction: column;
}
.erow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 2px solid #eee4d4;
}
.erow > span:nth-child(3) {
  flex: 1 1 320px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.erow.dim {
  opacity: 0.55;
}
a.opt {
  text-decoration: none;
  color: var(--fg);
}
a.opt.on {
  color: var(--bg);
}
.opt .mono {
  margin-left: 8px;
  font-size: 12px;
  opacity: 0.8;
}
