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.
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.
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
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync