/* Quests (M, quests_sheet.rs): the tab on the book (ui.css, "The book"). The left page is your
   quests, a ledger of their sumi pictures, names, pay and stamps, over the errands the village may
   deal; the right page your party: its seats, what it pays by its size, and whom here you may
   invite. */
.quests-book {
  .page-body > .lede { margin: 0 0 18px; }
  .page-body > .note { margin: 6px 0 18px; }

  /* A quest: its picture in a ring, its name, what it asks and when its deal ends; what it pays,
     or its stamp. One done is quieter. */
  .ledger.quests > .quest { grid-template-columns: 72px minmax(0, 1fr) auto; column-gap: 20px; padding: 16px 4px; }
  .quest {
    .roundel { width: 68px; height: 68px; }
    h3 { font-size: 19px; }
    p { margin: 2px 0 0; font-size: 14.5px; line-height: 1.4; }
    .clock { display: block; margin-top: 7px; font-size: 10.5px; color: var(--accent-on-paper); }
    .end { display: grid; justify-items: end; gap: 6px; padding-right: 4px; text-align: right; }
    .end .caps { font-size: 10px; }
    .pays { display: inline-flex; align-items: center; gap: 6px; font: 500 22px/1 var(--face); font-variant-numeric: tabular-nums; color: var(--sumi); }
    .coin { width: 18px; height: 18px; }
    .paid { display: inline-flex; align-items: center; gap: 4px; }
    .paid .coin { width: 13px; height: 13px; }
    .stamp { font-size: 11.5px; }
  }
  .quest:is(.done, .expired) {
    h3, p { color: var(--sumi-faint); }
    .roundel img { opacity: 0.5; }
  }

  /* What the village may deal: its errands' pictures, each over its name. */
  .errands { margin-top: 30px;
    h3 { margin-bottom: 12px; font-size: 10.5px; }
    ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(62px, 1fr)); gap: 14px 4px; margin: 0; padding: 0; list-style: none; }
    li { display: grid; justify-items: center; align-content: start; gap: 6px; text-align: center;
      font: 500 11.5px/1.2 var(--face); color: var(--sumi-faint); }
    img { width: 30px; height: 30px; opacity: 0.75; }
  }

  /* An invitation that stands: a slip laid on the page. */
  .invite { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 14px 0 22px; padding: 16px 20px;
    p { margin: 0; }
    .actions { display: flex; gap: 6px; }
  }

  /* The party's seats: each a portrait over its name and what it is to you; a free seat an empty
     ring. */
  .seats { display: flex; flex-wrap: wrap; gap: 18px 28px; margin: 8px 0 30px; }
  .seat { display: grid; justify-items: center; align-content: start; gap: 4px; width: 112px; text-align: center;
    .portrait { margin: 6px 0 8px; }
    b { font: 600 16px/1.2 var(--face); color: var(--sumi); }
    .caps { font-size: 10px; }
    .btn { margin-top: 2px; }
    &.you .caps { color: var(--gold-ink); }
    &.free b { font-weight: 400; font-style: italic; color: var(--sumi-faint); }
  }

  /* What a village quest pays by how many of your village are in the party: a rung each, the one
     you stand on ringed in gold. */
  .by-party { margin-bottom: 28px;
    h3 { margin-bottom: 12px; font-size: 10.5px; }
    .lede { margin-top: 10px; }
  }
  .ladder { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none;
    li { display: grid; justify-items: center; gap: 8px; padding: 14px 6px 12px; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--sumi-line); }
    li[aria-current=true] { box-shadow: inset 0 0 0 1.5px var(--gold-ink); }
    li[aria-current=true] .caps { color: var(--gold-ink); }
    .marks { display: flex; gap: 4px; }
    .marks i { width: 9px; height: 9px; rotate: 45deg; border: 1.5px solid var(--sumi-faint); }
    .marks i.on { background: var(--sumi); border-color: var(--sumi); }
    b { font: 500 26px/1 var(--face); font-variant-numeric: tabular-nums; color: var(--sumi); }
    .caps { font-size: 10px; }
  }

  /* Whom here you may invite. */
  .here h3 { margin-bottom: 10px; font-size: 10.5px; }
  .ledger.mates > .mate { grid-template-columns: 44px minmax(0, 1fr) auto; padding: 9px 4px; }
  .mate {
    .who b { display: block; font: 600 15.5px/1.2 var(--face); color: var(--sumi); }
    .who .caps { display: block; margin-top: 3px; font-size: 10px; }
    .why { max-width: 200px; font: italic 400 13px/1.3 var(--face); color: var(--sumi-faint); text-align: right; }
  }
}
/* A short view: the quests, the seats and the rungs draw closer. */
@media (max-height: 800px) {
  .quests-book {
    .page-body > .lede { margin-bottom: 10px; }
    .ledger.quests > .quest { grid-template-columns: 56px minmax(0, 1fr) auto; padding: 9px 4px; }
    .quest .roundel { width: 54px; height: 54px; }
    .quest .clock { margin-top: 4px; }
    .errands { margin-top: 18px; }
    .seats { margin: 0 0 16px; }
    .seat { width: 96px; }
    .seat .portrait { width: 68px; height: 68px; margin: 4px 0 6px; }
    .by-party { margin-bottom: 16px; }
    .ladder li { gap: 5px; padding: 9px 6px 8px; }
    .ladder b { font-size: 22px; }
  }
}
