forms-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev ce303909347f
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone cf614aedcf4cdabfa9c45095
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
src/styles.css
/* Forms. Shared look comes from /kit.css; this is the app's own layout. */
body.app-mode .landing-only { display: none !important; }
body:not(.app-mode) #app:empty { display: none; }
/* App pages fill the screen, so the footer never shows under a loading skeleton and then jumps away. */
body.app-mode #app { min-height: 100vh; }
#your-forms:empty { display: none; }
/* The public form shows only the form. */
body.form-mode .site-head, body.form-mode .site-foot { display: none; }
.page-pad { padding-block: 56px 80px; }
.narrow { max-width: 640px; }
.small { font-size: 14px; }
.grow { flex: 1; min-width: 0; }
.req { color: var(--brick); }
.inline-code { font: 500 .86em/1 var(--mono); padding: .15em .38em; border-radius: 5px; background: var(--panel); border: 1px solid var(--panel-line); overflow-wrap: anywhere; }
.link-btn { border: 0; padding: 0; background: none; color: var(--cobalt); font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.btn-danger-solid { background: var(--brick); border-color: var(--brick); color: #fff; }
@media (hover: hover) { .btn-danger-solid:hover { background: #8f3824; border-color: #8f3824; } }
.empty-state > h1 { font: var(--type-title); letter-spacing: -.02em; color: var(--ink-solid); text-wrap: balance; }
.error-state > h1 { font: var(--type-title); letter-spacing: -.02em; color: #7c2f1d; }
body:has(.save-bar) .toast { bottom: calc(88px + var(--safe-bottom)); }

/* Landing hero */
.app-hero { padding: 48px 0 72px; background: linear-gradient(180deg, #faf6ee 0%, #fdfdfc 100%); border-bottom: 1px solid #f0ebe1; }
.app-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; align-items: center; }
.app-hero .eyebrow { line-height: 1.5; }
.app-hero h1 { margin-top: 14px; }
.app-hero .lede { margin-top: 18px; }
.hero-art { width: 180px; height: auto; margin-bottom: -4px; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero-points { list-style: none; padding: 0; margin-top: 26px; display: grid; gap: 10px; font-size: 15.5px; color: #3c4048; }
.hero-points li { display: flex; gap: 10px; align-items: baseline; }
.hero-points li::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: 50%; background: var(--cobalt); transform: translateY(-2px); }
.example-card { display: grid; gap: 14px; padding: 24px; }
.example-title { font: 400 28px/1.15 var(--serif); letter-spacing: -.02em; margin-top: -4px; }
.example-q { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.example-card .choice { pointer-events: none; }
@media (max-width: 900px) { .app-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 520px) { .hero-cta .btn { flex: 1; } }

/* Landing sections */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 28px; counter-reset: step; padding: 0; }
.steps li { list-style: none; counter-increment: step; }
.steps li::before { content: counter(step); display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 14px; border-radius: 50%; background: var(--ink-solid); color: #fff; font: 650 15px var(--sans); }
.steps h3 { font: 600 18px/1.3 var(--sans); }
.steps p { margin-top: 8px; color: #4a4e56; }
@media (max-width: 760px) { .steps { grid-template-columns: minmax(0, 1fr); } }
.api-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: start; }
.api-grid .code { font-size: 12.5px; }
@media (max-width: 900px) { .api-grid { grid-template-columns: minmax(0, 1fr); } }
.more-apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; list-style: none; padding: 0; margin-top: 22px; }
.more-apps a { display: grid; gap: 4px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); transition: border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out); }
@media (hover: hover) { .more-apps a:hover { border-color: var(--line-strong); box-shadow: var(--shadow); color: var(--ink); } }
.more-apps strong { font: 400 22px/1.1 var(--serif); }
.more-apps span { color: var(--muted); font-size: 14px; }
.compare td:first-child { font-weight: 600; }
.compare th, .compare td { min-width: 120px; }

/* Your forms */
.your-forms { border-bottom: 1px solid var(--line); }
.mine-list { list-style: none; padding: 0; margin-top: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.mine-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px 14px; flex-wrap: wrap; padding: 12px 16px; }
.mine-list li + li { border-top: 1px solid var(--line); }
.mine-title { font: 600 16px/1.3 var(--sans); color: var(--ink); min-width: 0; overflow-wrap: anywhere; }
.mine-actions { gap: 4px; }

/* Builder */
.builder-page { max-width: 820px; padding-bottom: 120px; }
.builder-h1 { margin: 8px 0 24px; }
.builder { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.builder-head { display: grid; gap: 8px; padding: 22px 24px; border-top: 4px solid var(--ink-solid); }
.title-input { display: block; width: 100%; resize: none; overflow: hidden; border: 0; border-bottom: 1px solid var(--line); padding: 4px 0 8px; background: transparent; font: 360 clamp(28px, 3.4vw, 38px)/1.15 var(--serif); letter-spacing: -.02em; color: var(--ink-solid); border-radius: 0; transition: border-color var(--motion-fast) var(--ease-out); }
.title-input:focus { outline: none; border-bottom-color: var(--cobalt); }
.title-input::placeholder { color: #a5a9b0; }
.desc-input { min-height: 0; border-color: transparent; padding: 6px 0; resize: vertical; box-shadow: none !important; border-radius: 0; }
@media (hover: hover) { .desc-input:hover { border-color: transparent; } }
.desc-input:focus { border-color: transparent; border-bottom: 1px solid var(--cobalt); }
.q-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.q-list > li { animation: oa-enter var(--motion) var(--ease-out); }
.q-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 20px 10px; transition: border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out); }
.q-card:focus-within { border-color: #c4d2ee; box-shadow: 0 0 0 3px #2e5ec414, var(--shadow); }
.q-top { display: grid; grid-template-columns: 28px minmax(0, 1fr) 200px; gap: 10px; align-items: center; }
.q-num { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: var(--paper-warm); border: 1px solid #ece2cf; font: 650 13px var(--sans); color: #6b5a3c; }
.q-label-input { font-weight: 600; }
.input-quiet { min-height: 40px; padding: 8px 12px; border-color: var(--line); color: #4a4e56; }
.opts { display: grid; gap: 6px; padding-left: 38px; }
.opt-row { display: flex; align-items: center; gap: 6px; }
.opt-mark { flex: 0 0 18px; height: 18px; border: 1.6px solid #b5bdc8; border-radius: 50%; font: 600 12px/15px var(--sans); color: var(--muted); text-align: center; }
.opt-mark.mark-checkboxes { border-radius: 4px; }
.opt-mark.mark-dropdown { border: 0; line-height: 18px; }
.input-sm { min-height: 40px; padding: 7px 10px; }
.add-opt { justify-self: start; color: var(--cobalt); padding-inline: 6px; }
.q-preview { padding-left: 38px; font-size: 14px; color: var(--muted); }
.q-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.q-tools { display: inline-flex; align-items: center; gap: 2px; }
.q-tools .btn-quiet { color: var(--muted); }
@media (hover: hover) { .q-tools .icon-danger:hover { color: var(--brick); background: var(--brick-wash); } }
.cond-add { gap: 6px; padding-inline: 10px; }
.cond { display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 200px) auto; grid-template-areas: "if q is v x"; align-items: center; gap: 8px; padding: 8px 6px 8px 14px; border-radius: var(--radius); background: var(--cobalt-wash); border: 1px solid #d1ddf5; }
.cond-label { font: var(--type-label); color: var(--cobalt-ink); }
.cond .select { background-color: #fff; }
.cond-if { grid-area: if; }
.cond-q { grid-area: q; }
.cond-is { grid-area: is; }
.cond-v { grid-area: v; }
.cond-x { grid-area: x; color: var(--cobalt-ink); }
.cond-error { grid-column: 1 / -1; }
.switch { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font: var(--type-label); color: #33363c; cursor: pointer; }
.switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch-track { position: relative; width: 36px; height: 20px; border-radius: 999px; background: #d3d8df; transition: background-color var(--motion-fast) var(--ease-out); }
.switch-track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px #0003; transition: transform var(--motion-fast) var(--ease-out); }
.switch input:checked + .switch-track { background: var(--ink-solid); }
.switch input:checked + .switch-track::after { transform: translateX(16px); }
.switch input:focus-visible + .switch-track { outline: 2px solid var(--cobalt); outline-offset: 2px; }
.add-q { display: grid; gap: 10px; padding: 18px 20px; border: 1px dashed var(--line-strong); border-radius: var(--radius-lg); }
.type-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
.type-btn { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; font: var(--type-control); color: #33363c; text-align: left; transition: border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out); }
@media (hover: hover) { .type-btn:hover { border-color: var(--line-strong); background: #fafbfc; } }
.type-icon { flex: 0 0 18px; color: var(--muted); }
.builder-thanks { padding: 18px 20px; }
.save-bar { position: sticky; bottom: 0; z-index: 15; margin-top: 8px; padding: 12px 0 calc(12px + var(--safe-bottom)); background: #fdfdfcf2; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-top: 1px solid var(--line); }
.save-bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; }
.save-error { color: var(--brick); font-size: 14.5px; font-weight: 600; }
@media (max-width: 640px) {
  .q-top { grid-template-columns: 28px minmax(0, 1fr); }
  .q-type { grid-column: 1 / -1; }
  .q-card { padding: 16px 14px 8px; }
  .builder-head { padding: 18px 16px; }
  .opts, .q-preview { padding-left: 0; }
  .type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .save-bar .btn { flex: 0 0 auto; }
  .cond-add { width: 36px; padding: 0; }
  .cond-add-text { display: none; }
  .cond { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "if if x" "q q q" "is v v"; padding: 6px 6px 12px 12px; }
  .cond .select { margin-right: 6px; }
}

/* Respondent view */
.respond { width: min(680px, calc(100% - 32px)); margin: 0 auto; padding: calc(36px + var(--safe-top)) 0 96px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.progress { position: fixed; top: 0; left: 0; right: 0; z-index: 30; height: 3px; pointer-events: none; }
.progress span { display: block; height: 100%; background: var(--cobalt); transform-origin: left center; transition: transform var(--motion-slow) var(--ease-out); }
.respond-head { padding: 26px 26px 22px; border-top: 4px solid var(--ink-solid); display: grid; gap: 10px; }
.respond-title { font: 360 clamp(30px, 4.4vw, 42px)/1.1 var(--serif); letter-spacing: -.025em; color: var(--ink-solid); overflow-wrap: anywhere; text-wrap: balance; }
.respond-desc { color: #4a4e56; white-space: pre-line; overflow-wrap: anywhere; }
.respond-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.q-answer { margin: 0; min-width: 0; padding: 20px 22px; border: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; transition: border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out); }
.q-answer.has-error { border-color: #e2b4a6; box-shadow: 0 0 0 3px #a8442c14, var(--shadow); }
/* Floated, the legend lays out like any other line instead of sitting on the fieldset's border. */
.q-label { float: left; width: 100%; padding: 0; font: 600 16.5px/1.4 var(--sans); color: var(--ink-solid); overflow-wrap: anywhere; }
.q-help { margin-top: -4px; font-size: 14.5px; color: var(--muted); white-space: pre-line; overflow-wrap: anywhere; }
.input-num, .input-date { max-width: 240px; }
.choices { display: grid; gap: 8px; }
.choice { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: #fff; cursor: pointer; font-size: 16px; transition: border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out); }
@media (hover: hover) { .choice:hover { border-color: #b5bdc8; } }
.choice.on { border-color: var(--ink-solid); background: #fafafa; box-shadow: inset 0 0 0 1px var(--ink-solid); }
.choice input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--ink-solid); }
.choice span { overflow-wrap: anywhere; }
.clear-answer { justify-self: start; margin-top: 6px; padding-inline: 8px; color: var(--muted); }
.tile { position: relative; display: grid; place-items: center; align-content: center; gap: 2px; min-height: 52px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: #fff; cursor: pointer; font: 600 15px/1.2 var(--sans); color: #33363c; transition: border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out); }
.tile-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.tile:has(.tile-input:focus-visible) { outline: 2px solid var(--cobalt); outline-offset: 2px; }
@media (hover: hover) { .tile:hover { border-color: #b5bdc8; } }
.tile.picked { border-color: var(--ink-solid); box-shadow: inset 0 0 0 1px var(--ink-solid); color: var(--ink-solid); }
.rating { display: grid; grid-template-columns: repeat(5, minmax(0, 64px)); gap: 8px; }
.rating .tile { font-size: 13px; color: var(--muted); padding: 6px 0 4px; }
.rating svg { fill: #e3e6ea; transition: fill var(--motion-fast) var(--ease-out); }
.rating .on svg { fill: var(--gold); }
.rating .tile.picked { color: var(--ink-solid); }
.rating-static span { display: grid; place-items: center; gap: 2px; padding: 6px 0 4px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: #fff; font: 600 13px var(--sans); color: var(--muted); }
.scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 6px; }
.scale .tile.picked, .yesno .tile.picked { background: var(--ink-solid); color: #fff; }
.yesno { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 320px; }
.respond-submit { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 4px; }
.respond-submit .btn { min-width: 180px; }
.respond-done { padding: 36px 28px; display: grid; justify-items: start; gap: 12px; }
.done-check { margin-bottom: 4px; }
.made-with { margin-top: 10px; text-align: center; font-size: 13px; color: var(--faint); }
.made-with a { color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.owner-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 16px; border-radius: 12px; background: var(--cobalt-wash); border: 1px solid #d1ddf5; color: var(--cobalt-ink); font: var(--type-label); }
.owner-bar .row { gap: 4px; }
.owner-bar a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 10px; border-radius: 8px; font: var(--type-control); }
@media (max-width: 600px) {
  .respond { padding-top: calc(16px + var(--safe-top)); width: calc(100% - 24px); }
  .respond-head, .q-answer { padding: 18px 16px; }
  .rating { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .scale { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .yesno { max-width: none; }
  .respond-submit .btn { width: 100%; }
  .respond-submit > .muted { width: 100%; text-align: center; }
}

/* Owner area */
.owner-head { border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #faf6ee, #fdfdfc); }
.owner-head-inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 20px; flex-wrap: wrap; padding: 28px 0 18px; }
.owner-title-block { min-width: 0; flex: 1 1 320px; }
.owner-title { margin-top: 8px; font: 360 clamp(30px, 4vw, 44px)/1.08 var(--serif); letter-spacing: -.03em; overflow-wrap: anywhere; text-wrap: balance; }
.status-open { color: #2f6b45; }
.status-closed { color: var(--brick); }
.owner-actions { gap: 8px; flex-wrap: nowrap; }
.owner-tabs { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.owner-tabs::-webkit-scrollbar { display: none; }
.owner-tabs a { display: inline-flex; align-items: center; gap: 7px; min-height: 46px; padding: 0 14px; border-bottom: 2px solid transparent; color: var(--muted); font: var(--type-control); white-space: nowrap; transition: color var(--motion-fast) var(--ease-out), border-color var(--motion) var(--ease-out); }
@media (hover: hover) { .owner-tabs a:hover { color: var(--ink-solid); } }
.owner-tabs a[aria-current="page"] { color: var(--ink-solid); border-bottom-color: var(--ink-solid); }
.tab-count { min-width: 22px; padding: 3px 7px; border-radius: 999px; background: #0000000d; font: 650 12px/1 var(--sans); text-align: center; }
.owner-tabs a[aria-current="page"] .tab-count { background: var(--ink-solid); color: #fff; }
.owner-body { padding-top: 28px; padding-bottom: 80px; }
.owner-body .builder { max-width: 820px; }
.closed-note { max-width: 760px; margin-bottom: 20px; }
@media (max-width: 600px) {
  .owner-actions { width: 100%; }
  .owner-actions > .btn { flex: 1; }
  .owner-head-inner { padding-top: 20px; }
  .owner-tabs a { padding: 0 11px; }
}

/* Results */
.results { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.results-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; max-width: 760px; }
.count { font: 340 clamp(34px, 4vw, 46px)/1 var(--serif); letter-spacing: -.03em; }
.count strong { font-weight: 450; }
.results-top .muted { margin-top: 8px; }
.summary-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; max-width: 760px; }
.sum-card { padding: 20px 22px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-width: 0; }
.sum-head { display: flex; align-items: flex-start; gap: 12px; }
.sum-label { font: 600 16.5px/1.35 var(--sans); overflow-wrap: anywhere; }
.bars { list-style: none; padding: 0; display: grid; gap: 12px; }
.bar-line { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.bar-line span:first-child { overflow-wrap: anywhere; }
.bar-num { flex: 0 0 auto; color: var(--muted); font: 600 13.5px var(--sans); white-space: nowrap; font-variant-numeric: tabular-nums; }
.bar { height: 8px; margin-top: 6px; border-radius: 999px; background: var(--panel); overflow: hidden; }
.bar span { display: block; height: 100%; border-radius: inherit; background: var(--cobalt); transition: width var(--motion-slow) var(--ease-out); }
.bar-row { display: grid; grid-template-columns: 16px minmax(0, 1fr) 36px; gap: 10px; align-items: center; }
.bar-row .bar { margin-top: 0; }
.bar-row .bar span { background: var(--gold); }
.bar-key { font: 600 13.5px var(--sans); color: var(--muted); }
.bar-row .bar-num { text-align: right; }
.avg { font: 400 30px/1.1 var(--serif); letter-spacing: -.02em; }
.avg .muted { font: 400 14px var(--sans); letter-spacing: 0; }
.scale-stats { display: flex; flex-wrap: wrap; gap: 8px 32px; }
.cols { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 6px; height: 150px; }
.col { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; text-align: center; }
.col-num { min-height: 17px; font: 600 12.5px/17px var(--sans); color: var(--muted); font-variant-numeric: tabular-nums; }
.col-track { flex: 1 1 0; display: flex; align-items: flex-end; min-height: 0; }
.col-bar { display: block; width: 100%; min-height: 2px; border-radius: 4px 4px 0 0; background: var(--line-strong); transition: height var(--motion-slow) var(--ease-out); }
.col-high .col-bar { background: var(--sage); }
.col-low .col-bar { background: #d6a495; }
.col-key { padding-top: 4px; border-top: 1px solid var(--line); font: 600 12.5px/1.2 var(--sans); color: var(--muted); }
.recent { list-style: none; padding: 0; display: grid; }
.recent li { padding: 9px 0; border-top: 1px solid var(--line); font-size: 15px; white-space: pre-line; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.recent li:first-child { border-top: 0; padding-top: 0; }
.see-all { justify-self: start; font: var(--type-control); }
.resp-bar { display: flex; flex-wrap: wrap; gap: 10px; }
.resp-search { flex: 1 1 260px; width: auto; }
.resp-bar + .muted { margin-top: -12px; }
.resp-table { font-size: 14.5px; }
.resp-table th { white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.resp-table tbody tr { cursor: pointer; transition: background-color var(--motion-fast) var(--ease-out); }
.resp-table tbody tr:focus { outline: none; }
.resp-table tbody tr:focus-visible { outline: 2px solid var(--cobalt); outline-offset: -2px; }
@media (hover: hover) { .resp-table tbody tr:hover { background: #fafbfc; } }
.resp-table td { max-width: 260px; }
.cell { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resp-cards { list-style: none; padding: 0; display: grid; gap: 10px; }
.resp-card { display: grid; gap: 4px; width: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); color: var(--ink); font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.resp-when { font: var(--type-label); color: var(--muted); }
.resp-line { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.resp-line .muted { margin-right: 4px; }
.resp-detail { display: grid; gap: 16px; margin: 0; animation: oa-fade-in var(--motion) var(--ease-out); }
.resp-detail dt { font: var(--type-label); color: var(--muted); }
.resp-detail dd { margin: 4px 0 0; white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .results-top .btn { width: 100%; }
  .resp-bar .btn { flex: 1 1 100%; }
  .foot-gap { display: none; }
  .cols { gap: 3px; }
}

/* Share */
.share { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 820px; }
.share-card { padding: 22px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; min-width: 0; }
.share-card > .muted { margin-top: -6px; }
.link-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.link-code { flex: 1 1 260px; min-width: 0; padding: 9px 11px; border-radius: 8px; background: var(--panel); border: 1px solid var(--panel-line); font: 13px var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.link-actions { gap: 6px; }
.qr-row { display: flex; align-items: center; gap: 18px; padding-top: 4px; }
.qr { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 10px; }
.qr-text { display: grid; gap: 10px; justify-items: start; color: #4a4e56; }
.codebox { min-width: 0; border-radius: 12px; overflow: hidden; background: #16181d; }
.codebox-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px 8px 18px; border-bottom: 1px solid #2a2d34; color: #a3aab8; font: var(--type-label); }
.codebox-bar .btn { min-height: 30px; background: #fff; }
.codebox .code { max-height: 340px; border-radius: 0; font-size: 12.5px; }
.share-admin { border-color: #ecd9b8; background: #fffcf6; }
.invite { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.invite > span { flex: 1 1 300px; }
@media (max-width: 600px) {
  .share-card { padding: 18px 16px; }
  .link-actions { width: 100%; }
  .link-actions > .btn { flex: 1; }
}

Change history

Quality pass: conditional questions, 0 to 10 scale, QR code, prefill links, results tabs, API docs
ce30390934 · 4 hours ago
Bounded source sync
7d82add8ae · 1 day ago
Bounded source sync
8230fd7d59 · 1 day ago
Bounded source sync
d92a6e3b44 · 1 day ago
Bounded source sync
b548641922 · 1 day ago
Bounded source sync
b89074ffd2 · 1 day ago