/* CCN — the path to a sale: offer sheet, messages, sale record, seller dashboard. */ /* Small covers */ .cover--thumb { flex-shrink: 0; width: 46px; } /* Too small for its imprint and number. */ .cover--thumb .cover__foot { display: none; } .cover--agreed { flex-shrink: 0; width: 96px; } /* ========================================================================== Offer sheet ========================================================================== */ .sheet { max-width: calc(520px + 2 * var(--gutter)); } .sheet__card, .sheet__form { display: flex; flex-direction: column; gap: 18px; } .sheet__head { display: flex; align-items: center; gap: var(--space-3); } .sheet__title { font-size: 15px; font-weight: 600; } .field__optional { color: var(--muted); font-weight: 400; } .amount { display: flex; align-items: center; height: 64px; padding: 0 var(--space-4); border: 1.5px solid var(--ink); border-radius: var(--radius-sm); background: var(--card); } .amount:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; } .amount__sign { color: var(--muted); font-size: 32px; font-weight: 600; } .amount__input { flex: 1 1 auto; min-width: 0; height: 60px; padding: 0 var(--space-2); border: 0; outline: 0; background: transparent; font-size: 32px; font-weight: 600; } .amount__picks { display: flex; flex-wrap: wrap; gap: 6px; } .amount__picks li { flex: 1 1 auto; } .amount__picks .pill { justify-content: center; width: 100%; height: 40px; font-size: 12px; font-weight: 600; } .sheet__terms { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3) 14px; border-radius: var(--radius-sm); background: var(--tint); color: var(--ink-soft); font-size: 13px; line-height: 1.45; } .sheet__terms strong { color: var(--ink); font-weight: 600; } .sheet__sum { display: grid; grid-template-columns: 1fr auto; gap: var(--space-2) var(--space-4); font-size: 14px; } .sheet__sum dd { text-align: right; } .sheet__total { padding-top: var(--space-2); border-top: 1px solid var(--line); font-size: 18px; font-weight: 600; } .sheet__cancel { color: var(--muted); font-size: 13px; text-align: center; } /* ========================================================================== Sale record ========================================================================== */ .sale, .sale__column, .sale__card { display: flex; flex-direction: column; } .sale { gap: var(--space-6); } .sale__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-3); } .sale__head .chip { padding: var(--space-1) var(--space-2); font-size: 12px; } .sale__heading { display: flex; flex-direction: column; gap: 6px; } .sale__summary { color: var(--muted); } .sale__handshake { display: flex; flex-direction: column; gap: var(--space-4); } .stepper { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-2); padding: var(--space-2) 0; } .stepper__step { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); text-align: center; } .stepper__dot { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--line); color: var(--muted); font-size: 13px; font-weight: 700; } .stepper__step--done .stepper__dot { background: var(--good); color: var(--card); } .stepper__step--current .stepper__dot { background: var(--accent); color: #ffffff; } .stepper__name { font-size: 13px; font-weight: 600; } .sale__next { display: flex; flex-direction: column; gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line); } .sale__rule, .sale__waiting { color: var(--ink-soft); font-size: 13px; line-height: 1.45; } .sale__waiting { align-self: center; font-weight: 600; } .sale__actions, .sale__step { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); } .sale__note { flex: 1 1 200px; } .rating { display: flex; flex-direction: row-reverse; gap: var(--space-1); } .rating__option { position: relative; cursor: pointer; } .rating__option input { position: absolute; opacity: 0; } .rating__option span { display: flex; align-items: center; height: var(--control-md); padding: 0 var(--space-3); border: 1px solid var(--rule); border-radius: var(--radius-sm); background: var(--card); font-size: 13px; font-weight: 600; } .rating__option input:checked + span { border-color: var(--header); background: var(--header); color: var(--on-dark); } .rating__option input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; } .sale__body { display: grid; gap: var(--space-6); align-items: start; } .sale__column { gap: var(--space-6); } .sale__card { gap: var(--space-4); } .sale__title { color: var(--ink); font-size: 13px; } .sale__agreed { display: flex; align-items: flex-start; gap: var(--space-5); } .sale__agreed .details, .sale__card > .details { flex: 1 1 auto; font-size: 13px; } .sale__text { color: var(--ink-soft); } .sale__party { display: flex; align-items: center; gap: var(--space-3); } .sale__party-name { font-size: 14px; font-weight: 600; } @media (min-width: 1024px) { .sale__next { flex-direction: row; align-items: center; justify-content: space-between; } .sale__rule { max-width: 520px; } .sale__actions, .sale__step { flex-wrap: nowrap; } .sale__note { flex-basis: 260px; } .sale__body { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } .cover--agreed { width: 140px; } } /* ========================================================================== Messages ========================================================================== */ .messages { display: grid; gap: var(--space-6); align-items: start; } /* Below desktop, the rail and the conversation take turns. */ .messages--open .messages__rail, .messages:not(.messages--open) .messages__thread { display: none; } .messages__rail, .messages__thread { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; } .messages__rail-head { display: flex; align-items: baseline; justify-content: space-between; } .messages__boxes { display: flex; gap: var(--space-2); } .messages__list { display: flex; flex-direction: column; border-top: 1px solid var(--line); } .messages__item { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3); border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; } .messages__item:hover, .messages__item[aria-current] { background: var(--tint); color: var(--ink); } .messages__item-text { display: flex; flex: 1 1 auto; flex-direction: column; gap: 2px; min-width: 0; font-size: 13px; } .messages__item-top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); font-size: 14px; } .messages__item-about { color: var(--muted); font-size: 12px; } .messages__item-preview { overflow: hidden; color: var(--ink-soft); text-overflow: ellipsis; white-space: nowrap; } .messages__unread { display: flex; flex-shrink: 0; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent); color: #ffffff; font-size: 10px; font-weight: 700; } .messages__back { color: var(--muted); font-size: 13px; } .messages__pinned { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); padding-bottom: var(--space-4); border-bottom: 1px solid var(--line); } .messages__pinned-text { display: flex; flex: 1 1 200px; flex-direction: column; gap: var(--space-1); min-width: 0; } .messages__pinned-top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); } .messages__pinned-title { color: var(--ink); font-size: 15px; font-weight: 600; text-decoration: none; } .messages__pinned-top a.chip { text-decoration: none; } .messages__entries { display: flex; flex-direction: column; gap: var(--space-4); } .entry { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-1); max-width: 520px; } .entry--own { align-items: flex-end; align-self: flex-end; } .entry__bubble { padding: var(--space-3) 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--card); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; white-space: pre-line; } .entry--own .entry__bubble { border-color: var(--header); background: var(--header); color: var(--on-dark); } .entry--event { align-items: center; align-self: center; max-width: 100%; } .entry__event { color: var(--muted); font-size: 12px; text-align: center; } .entry__sale { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); max-width: 520px; } .offer-card { display: flex; flex-direction: column; gap: var(--space-2); width: min(420px, 100%); padding: var(--space-4); } .offer-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); } .offer-card__note { color: var(--ink-soft); font-size: 14px; line-height: 1.5; } .answer { display: flex; gap: var(--space-2); } .messages__replies { display: flex; flex-wrap: wrap; gap: var(--space-2); } .composer { display: flex; align-items: flex-end; gap: var(--space-2); } .composer__input { flex: 1 1 auto; min-height: 64px; } .messages__safety { text-wrap: pretty; } @media (min-width: 1024px) { .messages { grid-template-columns: 380px minmax(0, 1fr); gap: var(--space-10); padding-top: var(--space-8); } .messages--open .messages__rail, .messages:not(.messages--open) .messages__thread { display: flex; } .messages__thread--none { align-items: center; justify-content: center; min-height: 240px; color: var(--muted); } } /* ========================================================================== Seller dashboard ========================================================================== */ .sell { display: flex; flex-direction: column; gap: var(--space-6); } .sell__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-4); } .sell__heading { display: flex; flex-direction: column; gap: 6px; } .sell__summary, .sell__none { color: var(--muted); } .sell__none { font-size: 14px; } .tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); } .tiles__tile { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4); } .sell__panel { display: flex; flex-direction: column; gap: var(--space-4); } .rows { display: flex; flex-direction: column; } .rows__row { display: grid; gap: var(--space-2) var(--space-4); align-items: center; padding: var(--space-3) 0; border-top: 1px solid var(--line); color: var(--ink); font-size: 14px; text-decoration: none; } a.rows__row:hover { background: var(--paper); color: var(--ink); } .rows__title { color: var(--ink); font-weight: 600; text-decoration: none; } .rows__title:hover { text-decoration: underline; text-underline-offset: 3px; } .handshake { display: flex; flex-wrap: wrap; gap: var(--space-3); color: var(--muted); font-size: 11px; } .handshake__step { display: flex; align-items: center; gap: var(--space-1); } .handshake__step::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--line); } .handshake__step--done { color: var(--ink); } .handshake__step--done::before { background: var(--good); } @media (min-width: 600px) { .tiles { grid-template-columns: repeat(5, minmax(0, 1fr)); } .rows__row--listing { grid-template-columns: minmax(0, 2fr) 90px 140px; } } @media (min-width: 1024px) { .sell { gap: var(--space-7); padding-top: var(--space-8); } .tiles { gap: var(--space-5); } .tiles__tile { padding: var(--space-5); } .rows__row--offer { grid-template-columns: minmax(0, 2fr) 90px 90px 110px minmax(0, 1.2fr) auto; } .rows__row--sale { grid-template-columns: 100px minmax(0, 2fr) 70px minmax(0, 1fr) 340px 130px; } } /* ========================================================================== New listing ========================================================================== */ .listing-form, .listing-form__form, .listing-form__section, .listing-form__scope { display: flex; flex-direction: column; } .listing-form { gap: var(--space-6); max-width: calc(880px + 2 * var(--gutter)); } .listing-form__head { display: flex; flex-direction: column; gap: 6px; } .listing-form__form { gap: var(--space-5); } .listing-form__section { gap: var(--space-5); } .listing-form__scope { gap: var(--space-4); } .listing-form__grid { display: grid; gap: var(--space-4); align-items: start; } .listing-form__modes { display: grid; gap: var(--space-3); } .listing-form__mode { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--rule); border-radius: var(--radius-sm); cursor: pointer; } .listing-form__mode:has(input:checked) { border-color: var(--ink); background: var(--tint); } .listing-form__mode span { display: flex; flex-direction: column; gap: var(--space-1); font-size: 14px; } .listing-form__checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px var(--space-4); } .listing-form__files { padding: var(--space-4); border: 1px dashed var(--rule); border-radius: var(--radius-sm); background: var(--paper); font-size: 13px; } .listing-form__submit { display: flex; justify-content: flex-end; gap: var(--space-3); } .sell__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); } @media (min-width: 600px) { .listing-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .listing-form__modes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .field--wide { grid-column: span 2; } } @media (min-width: 1024px) { .listing-form { padding-top: var(--space-8); } } /* ========================================================================== Want list ========================================================================== */ .wants { display: flex; flex-direction: column; gap: var(--space-4); max-width: calc(720px + 2 * var(--gutter)); } .wants__form { display: flex; flex-direction: column; gap: var(--space-4); } .wants__list { display: flex; flex-direction: column; gap: var(--space-3); } .wants__want { display: flex; flex-direction: column; gap: var(--space-2); padding: 14px; } .wants__top, .wants__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .wants__title { color: var(--ink); font-size: 15px; font-weight: 600; text-decoration: none; } .wants__title:hover { text-decoration: underline; text-underline-offset: 3px; } .wants__new { padding: 3px 7px; border-radius: var(--radius-pill); background: var(--accent); color: #ffffff; font-size: 11px; font-weight: 700; white-space: nowrap; } .wants__match { color: var(--ink); font-size: 13px; font-weight: 600; } .wants__add { display: flex; align-items: center; justify-content: center; height: 50px; border: 1.5px dashed var(--ink); border-radius: var(--radius-sm); color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; } .wants__add:hover { background: var(--card); color: var(--ink); } .wants__note { text-align: center; } /* ========================================================================== Account ========================================================================== */ .account { display: grid; gap: var(--space-6); align-items: start; } .account__rail, .account__main, .account__section, .account__nav { display: flex; flex-direction: column; } .account__rail { gap: var(--space-2); } .account__nav { padding-top: var(--space-2); } .account__nav a { padding: 10px 0; border-top: 1px solid var(--line); color: var(--ink); font-size: 14px; text-decoration: none; } .account__nav a:hover { text-decoration: underline; text-underline-offset: 3px; } .account__main { gap: var(--space-5); } .account__section { gap: var(--space-4); } .account__form { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--space-3); } .account__form .field { flex: 1 1 260px; } .account__form .button { margin-top: 23px; } .account__text { color: var(--ink-soft); } .rows__row--passkey { grid-template-columns: auto minmax(0, 1fr) auto; } @media (min-width: 1024px) { .wants { padding-top: var(--space-8); } .account { grid-template-columns: 240px minmax(0, 1fr); gap: var(--space-10); padding-top: var(--space-8); } }