/* Rota — the app's own layout. Everything else is the zap theme (tokens only). */
html, body { margin: 0; background: var(--zap-bg, #fff); }
.zap { min-height: 100vh; font-family: var(--zap-font); color: var(--zap-text); background: var(--zap-bg); }
.muted { color: var(--zap-muted); }
.root { min-height: 100vh; }
.brand { font-size: 17px; letter-spacing: -.01em; }

/* shell */
.shell { display: flex; min-height: 100vh; }
.shell-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.shell-top { display: flex; align-items: center; gap: 10px; padding: 12px 24px 0; }
.shell-top__spacer { flex: 1; }
.shell-actions { display: grid; gap: 6px; }
.shell-row { display: flex; gap: 4px; flex-wrap: wrap; }
.shell-row .zap-btn { flex: 1; }
.shell-user { display: flex; align-items: center; gap: 10px; min-width: 0; }
.shell-user__text { flex: 1; min-width: 0; display: grid; font-size: 13px; }
.shell-user__text small { color: var(--zap-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 900px) { .shell { flex-direction: column; } .shell-top { display: none; } }

.page { padding: 8px 28px 48px; max-width: 1200px; width: 100%; box-sizing: border-box; margin: 0 auto; }
.page--wide { max-width: none; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 8px 0 20px; }
.page-head h1 { margin: 0 0 4px; font-size: 26px; letter-spacing: -.02em; }
.page-head p { margin: 0; }
.section-title { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--zap-muted); margin: 0 0 12px; }
@media (max-width: 640px) { .page { padding: 8px 14px 40px; } .page-head { flex-direction: column; } }

/* login */
.login { min-height: 100vh; display: grid; place-content: center; gap: 16px; padding: 24px; box-sizing: border-box;
  background: radial-gradient(1200px 600px at 10% -10%, color-mix(in srgb, var(--zap-primary) 16%, transparent), transparent), var(--zap-bg); }
.login__card { width: min(420px, calc(100vw - 32px)); box-sizing: border-box; padding: 26px 26px 20px; border: 1px solid var(--zap-border); border-radius: 18px; background: var(--zap-surface);
  box-shadow: 0 30px 70px -30px rgba(16, 24, 40, .35); display: grid; gap: 18px; animation: zap-ph-in .4s ease; }
.login__brand { display: flex; align-items: center; gap: 12px; }
.login__brand > span { font-size: 34px; }
.login__brand b { display: block; font-size: 22px; letter-spacing: -.02em; }
.login__brand small { color: var(--zap-muted); }
.login__form { display: grid; gap: 14px; padding-top: 16px; }
.login__demo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 14px; border-top: 1px solid var(--zap-border); font-size: 13px; color: var(--zap-muted); }
.login__foot { margin: 0; text-align: center; font-size: 12px; color: var(--zap-muted); }

/* home */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 26px; }
.home-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 28px; align-items: start; }
@media (max-width: 1000px) { .home-grid { grid-template-columns: 1fr; } }
.proj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.proj-card__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; font-size: 20px; background: color-mix(in srgb, var(--c) 16%, var(--zap-surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 30%, transparent); }
.proj-card .zap-card__icon { background: none; width: auto; height: auto; }
.proj-card__body { display: grid; gap: 10px; }
.proj-card__body p { margin: 0; font-size: 13px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.9em; }
.proj-card__nums { display: flex; gap: 14px; font-size: 12.5px; color: var(--zap-muted); } .proj-card__nums b { color: var(--zap-text); }

/* board */
.board-page__inner { display: grid; gap: 12px; }
.board-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.board-head__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; font-size: 22px; background: color-mix(in srgb, var(--c) 16%, var(--zap-surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 30%, transparent); }
.board-head__titles { flex: 1; min-width: 200px; }
.board-head h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; display: flex; align-items: center; gap: 8px; }
.board-head p { margin: 2px 0 0; font-size: 13px; }
.board-tools { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.board-tools .zap-tf { width: 260px; }
.board-skel { display: flex; gap: 14px; padding-top: 60px; }
.board-skel__col { width: 280px; display: grid; gap: 10px; padding: 12px; border: 1px solid var(--zap-border); border-radius: 12px; }
.rota-card { cursor: pointer; }
.rota-tag { font-size: 11px; font-weight: 700; padding: 2px 7px; border-radius: 999px; color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); }
.rota-key { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; color: var(--zap-muted); }

/* issue drawer */
.issue__grid { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; align-items: start; }
@media (max-width: 760px) { .issue__grid { grid-template-columns: 1fr; } }
.issue__main { display: grid; gap: 16px; min-width: 0; }
.issue__title .zap-tf__input, .issue__title input { font-size: 20px; font-weight: 700; }
.issue__side { display: grid; gap: 12px; position: sticky; top: 0; }
.field { display: grid; gap: 5px; }
.field > span { font-size: 12px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--zap-muted); }
.issue__facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 6px 0 0; padding-top: 12px; border-top: 1px solid var(--zap-border); font-size: 13px; }
.issue__facts dt { color: var(--zap-muted); } .issue__facts dd { margin: 0; }
.issue-skel { display: grid; gap: 16px; }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.comments { display: grid; gap: 14px; padding-top: 6px; }
.comment { display: flex; gap: 10px; animation: zap-ph-in .3s ease; }
.comment__body { flex: 1; min-width: 0; padding: 8px 12px; border-radius: 10px; background: var(--zap-elevated); border: 1px solid var(--zap-border); }
.comment__body header { display: flex; gap: 8px; align-items: baseline; font-size: 13px; } .comment__body time { font-size: 12px; color: var(--zap-muted); }
.comment__body p { margin: 4px 0 0; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.comment-box { display: grid; gap: 8px; }
.comment-box__row { display: flex; justify-content: flex-end; }

/* forms */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.form-grid__full { grid-column: 1 / -1; }
@media (max-width: 560px) { .form-grid { grid-template-columns: 1fr; } }
.form-error { margin: 0; color: var(--zap-danger); font-size: 13px; }
.icon-pick { display: grid; gap: 6px; }
.icon-pick__row { display: flex; flex-wrap: wrap; gap: 4px; }
.icon-pick__b { width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--zap-border); background: var(--zap-surface); font-size: 17px; cursor: pointer; transition: transform .15s ease; }
.icon-pick__b:hover { transform: scale(1.1); } .icon-pick__b.is-on { border-color: var(--zap-primary); box-shadow: 0 0 0 3px var(--zap-primary-soft); }

.activity-page__list { max-width: 760px; }

/* views of a project */
.view-tabs { display: inline-flex; padding: 3px; gap: 2px; border-radius: 10px; background: var(--zap-elevated); border: 1px solid var(--zap-border); }
.view-tab { font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 7px; color: var(--zap-muted); text-decoration: none; transition: background-color .15s ease, color .15s ease; }
.view-tab:hover { color: var(--zap-text); }
.view-tab.is-on { background: var(--zap-surface); color: var(--zap-text); box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }
.plan { display: grid; gap: 10px; }
.plan__hint { margin: 0; font-size: 12.5px; }
.board-page__inner > *, .plan > *, .plan-page { min-width: 0; }
.board-head { min-width: 0; }

/* settings */
.settings { max-width: 900px; }
.settings__card { display: grid; gap: 16px; padding: 20px; margin-top: 14px; border: 1px solid var(--zap-border); border-radius: var(--zap-radius); background: var(--zap-surface); }
.settings__card.is-danger { border-color: color-mix(in srgb, var(--zap-danger) 40%, var(--zap-border)); }
.settings__foot { display: flex; justify-content: flex-end; gap: 8px; padding-top: 12px; border-top: 1px solid var(--zap-border); }
.settings__key { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.settings__hint { margin: 0; font-size: 13px; }
.invite { display: grid; grid-template-columns: minmax(0, 1fr) 160px auto; gap: 10px; align-items: end; padding-bottom: 16px; border-bottom: 1px solid var(--zap-border); }
.members { display: grid; }
.member { display: grid; grid-template-columns: auto minmax(0, 1fr) 150px 90px; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--zap-border); }
.member:last-child { border-bottom: 0; }
.member__who { display: grid; min-width: 0; font-size: 14px; } .member__who small { color: var(--zap-muted); overflow: hidden; text-overflow: ellipsis; }
.col-head, .col-row { display: grid; grid-template-columns: 28px 44px minmax(0, 1fr) 120px 56px 40px; gap: 10px; align-items: center; }
.col-head { padding: 0 7px; }
.col-head { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--zap-muted); }
.col-row { padding: 6px; border: 1px solid var(--zap-border); border-radius: var(--zap-radius-sm); background: var(--zap-surface); }
.col-row__color .zap-cp-field .zap-cp__trigger { padding: 6px; } .col-row__color .zap-sel__val, .label-row .zap-cp-field .zap-sel__val { display: none; }
.col-add { display: flex; gap: 10px; align-items: center; } .col-add .zap-tf { flex: 1; max-width: 320px; }
.labels { display: grid; gap: 8px; }
.label-row { display: grid; grid-template-columns: 44px 110px minmax(0, 1fr) 40px; gap: 10px; align-items: center; }
.label-row .rota-tag { justify-self: start; }
.danger-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .danger-row p { margin: 2px 0 0; font-size: 13px; }
@media (max-width: 700px) { .invite, .member, .col-head, .col-row, .label-row { grid-template-columns: 1fr; } .col-head { display: none; } }

/* ── attachments ─────────────────────────────────────────────── */
.issue__section { display: grid; gap: 8px; }
.issue__section h3 { margin: 4px 0 0; font-size: 13px; font-weight: 600; display: flex; gap: 6px; align-items: baseline; }
.files { display: grid; gap: 10px; }
.files__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.file-thumb { margin: 0; display: grid; gap: 4px; min-width: 0; animation: rota-pop .25s ease both; }
.file-thumb__img { padding: 0; border: 1px solid var(--zap-border); border-radius: 10px; overflow: hidden; background: var(--zap-surface-2, var(--zap-surface)); cursor: zoom-in; aspect-ratio: 4 / 3; }
.file-thumb__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.file-thumb__img:hover img { transform: scale(1.05); }
.file-thumb__img:focus-visible { outline: 2px solid var(--zap-primary); outline-offset: 2px; }
.file-thumb figcaption { display: flex; align-items: center; gap: 4px; font-size: 12px; min-width: 0; }
.file-thumb figcaption span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--zap-text-muted, inherit); }
.files__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.file-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; animation: rota-pop .25s ease both; }
.file-row:hover { background: var(--zap-hover, color-mix(in srgb, var(--zap-text) 5%, transparent)); }
.file-row__icon { font-size: 18px; }
.file-row__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; font-weight: 500; text-decoration: none; }
.file-row__name:hover { text-decoration: underline; }
.file-row__meta { font-size: 12px; white-space: nowrap; }
.file-row__dl { text-decoration: none; color: var(--zap-text-muted, inherit); font-size: 16px; padding: 2px 6px; border-radius: 6px; }
.file-row__dl:hover { background: var(--zap-hover, color-mix(in srgb, var(--zap-text) 8%, transparent)); color: var(--zap-primary); }
@media (max-width: 640px) { .file-row { grid-template-columns: auto minmax(0, 1fr) auto auto; } .file-row__meta { display: none; } }
@keyframes rota-pop { from { opacity: 0; transform: translateY(4px) scale(.98); } }

/* ── mentions ────────────────────────────────────────────────── */
.has-mentions { position: relative; }
.mention-list { position: absolute; left: 0; bottom: calc(100% + 6px); z-index: 20; min-width: 240px; max-width: 100%; padding: 4px; border-radius: 10px;
  background: var(--zap-surface); border: 1px solid var(--zap-border); box-shadow: 0 12px 32px -8px rgb(0 0 0 / .25); animation: rota-pop .15s ease both; }
.mention-list[hidden] { display: none; }
.mention-list > div { display: grid; gap: 2px; }
.mention-opt { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border: 0; border-radius: 7px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.mention-opt span { display: grid; line-height: 1.2; min-width: 0; }
.mention-opt small { color: var(--zap-text-muted, inherit); font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
.mention-opt.is-active { background: color-mix(in srgb, var(--zap-primary) 12%, transparent); }
.mention { color: var(--zap-primary); font-weight: 600; background: color-mix(in srgb, var(--zap-primary) 10%, transparent); border-radius: 5px; padding: 0 3px; }
.mention.is-me { background: color-mix(in srgb, #f59e0b 22%, transparent); color: inherit; }

/* ── search results in the palette ───────────────────────────── */
.hit { display: flex; align-items: center; gap: 8px; min-width: 0; overflow: hidden; white-space: nowrap; }
.hit__status { display: inline-flex; align-items: center; gap: 5px; flex: none; }
.hit__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.hit__snip { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.hit__snip::before { content: "“"; } .hit__snip::after { content: "”"; }
.hit mark, .zap-cmd__desc mark { background: color-mix(in srgb, #f59e0b 30%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
.hit.is-done .hit__status { text-decoration: line-through; opacity: .7; }

/* ── list view ───────────────────────────────────────────────── */
.list-view { display: grid; gap: 10px; min-width: 0; }
.list-key { text-decoration: none; font-weight: 600; }
.list-key:hover { text-decoration: underline; }
.list-status, .list-person, .list-pri { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.list-pri i { width: 8px; height: 8px; border-radius: 2px; background: var(--pri); }
.list-tags { display: inline-flex; gap: 4px; overflow: hidden; }
.list-due.is-late { color: var(--zap-danger, #ef4444); font-weight: 600; }
/* the bulk bar floats over the page's foot: it must not push the rows about under the pointer */
.list-bulk { position: fixed; left: 50%; bottom: 76px; z-index: 30; display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 16px;
  border-radius: 14px; background: var(--zap-surface); border: 1px solid var(--zap-border); box-shadow: 0 18px 48px -12px rgb(0 0 0 / .35);
  transform: translate(-50%, 140%); opacity: 0; pointer-events: none; transition: transform .28s cubic-bezier(.2, .9, .3, 1.2), opacity .2s ease;
  max-width: calc(100vw - 32px); flex-wrap: wrap; }
.list-bulk.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.list-bulk b { white-space: nowrap; }
.list-bulk .zap-select { min-width: 140px; }
.list-bulk__sp { flex: 1; }

/* six views: on a narrow page the tabs scroll rather than run off the edge */
.board-head .view-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.board-head .view-tabs::-webkit-scrollbar { display: none; }

/* two-step sign-in */
.login__second { display: grid; gap: 6px; padding-top: 14px; animation: rota-pop .25s ease both; }
.login__second-head { display: flex; gap: 12px; align-items: center; }
.login__second-head b { display: block; font-size: 16px; }
.login__second-head small { color: var(--zap-muted); }
.login__lock { font-size: 26px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--zap-primary) 10%, var(--zap-surface)); }
.login__second .zap-otp { justify-self: center; }
.login__alt { display: flex; justify-content: space-between; gap: 8px; padding-top: 6px; font-size: 13px; }
.linkish { background: none; border: 0; padding: 0; font: inherit; color: var(--zap-primary); cursor: pointer; }
.linkish:hover { text-decoration: underline; }

/* ── profile ─────────────────────────────────────────────────── */
.shell-user__me { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; color: inherit; text-decoration: none; border-radius: 10px; padding: 4px; margin: -4px; transition: background .15s; }
.shell-user__me:hover { background: color-mix(in srgb, var(--zap-text) 6%, transparent); }
.profile { max-width: 760px; margin-inline: auto; width: 100%; box-sizing: border-box; }
.profile__field { display: grid; gap: 6px; }
.profile__label { font-size: 13px; font-weight: 600; }
.profile__grid { display: grid; gap: 18px; }
.profile__hero { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 8px 0 4px; }
.profile__hero h1 { margin: 0; font-size: 26px; letter-spacing: -.02em; }
.profile__hero p { margin: 2px 0 0; }
.card-block { display: grid; gap: 14px; padding: 20px; border: 1px solid var(--zap-border); border-radius: 16px; background: var(--zap-surface); }
.card-block > header h2 { margin: 0; font-size: 16px; }
.card-block > header p { margin: 2px 0 0; font-size: 13px; }
.card-block footer, .profile__pw footer { display: flex; justify-content: flex-end; gap: 8px; }
.profile__pw { display: grid; gap: 12px; }
.hue-row { display: flex; align-items: center; gap: 14px; }
.hue-row > :first-child { flex: 1; }
.hue-dot { width: 28px; height: 28px; border-radius: 50%; flex: none; background: linear-gradient(135deg, hsl(var(--h) 80% 62%), hsl(calc(var(--h) + 40) 70% 45%)); box-shadow: 0 0 0 3px var(--zap-surface), 0 0 0 4px var(--zap-border); }
.tfa-status { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px; border-radius: 12px; background: color-mix(in srgb, var(--zap-text) 4%, transparent); }
.tfa-status.is-on { background: color-mix(in srgb, #10b981 10%, transparent); }
.tfa-status__icon { font-size: 24px; }
.tfa-status__sp { flex: 1; }
.tfa-wizard { display: grid; gap: 16px; }
.tfa-step { padding-top: 14px; display: grid; gap: 14px; }
.tfa-scan { display: flex; gap: 22px; align-items: flex-start; flex-wrap: wrap; }
.tfa-scan__side { display: grid; gap: 10px; flex: 1; min-width: 240px; }
.tfa-scan__side p { margin: 0; }
.tfa-manual summary { cursor: pointer; color: var(--zap-primary); font-size: 13px; }
.tfa-key { display: flex; align-items: center; gap: 6px; margin: 8px 0 2px; }
.tfa-key code { font-size: 15px; letter-spacing: .06em; padding: 6px 10px; border-radius: 8px; background: color-mix(in srgb, var(--zap-text) 6%, transparent); word-break: break-all; }
.tfa-foot span { display: inline-flex; gap: 8px; }
.tfa-ack { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.tfa-ask form { display: grid; gap: 10px; }
.tfa-ask p { margin: 0; }
.recovery { display: grid; gap: 10px; }
.recovery__codes { margin: 0; padding: 14px 18px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 24px; border-radius: 12px; border: 1px dashed var(--zap-border);
  background: color-mix(in srgb, var(--zap-text) 3%, transparent); list-style: none; counter-reset: rc; }
.recovery__codes li { counter-increment: rc; display: flex; gap: 8px; align-items: baseline; }
.recovery__codes li::before { content: counter(rc); font-size: 11px; color: var(--zap-muted); min-width: 14px; text-align: right; }
.recovery__codes code { font-size: 15px; letter-spacing: .04em; }
.recovery__acts { display: flex; gap: 8px; }
@media (max-width: 520px) { .recovery__codes { grid-template-columns: 1fr; } }

/* a viewer's note under the project header */
.viewer-note { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 12px; font-size: 13px; line-height: 1.45;
  background: color-mix(in srgb, #0ea5e9 9%, var(--zap-surface)); border: 1px solid color-mix(in srgb, #0ea5e9 28%, transparent); animation: rota-pop .25s ease both; }
.viewer-note > span { font-size: 20px; }
.viewer-note > div { flex: 1; min-width: 0; }
@media (max-width: 640px) { .viewer-note { flex-wrap: wrap; } }
.list-bucket { font-weight: 600; }
.list-bucket.is-late { color: var(--zap-danger, #ef4444); }
.list-bucket.is-today { color: #f59e0b; }
.list-bucket.is-done, .list-bucket.is-none { color: var(--zap-muted); font-weight: 500; }

/* a photo on the profile */
.photo { display: grid; justify-items: center; gap: 4px; }
.photo__face { position: relative; padding: 0; border: 0; background: none; border-radius: 50%; cursor: pointer; line-height: 0; }
.photo__face:disabled { cursor: default; }
.photo__face:focus-visible { outline: 2px solid var(--zap-primary); outline-offset: 3px; }
.photo__over { position: absolute; inset: 0; border-radius: 50%; display: grid; place-content: center; justify-items: center; gap: 2px; line-height: 1; font-size: 18px;
  color: #fff; background: rgb(0 0 0 / .45); opacity: 0; transition: opacity .15s; }
.photo__over small { font-size: 11px; font-weight: 600; }
.photo__face:hover .photo__over, .photo__face:focus-visible .photo__over { opacity: 1; }
.photo__rm { font-size: 12px; }
.photo__crop { min-height: 360px; }
.zap-kb__av--img { object-fit: cover; padding: 0; }
