169 lines
4.1 KiB
CSS
169 lines
4.1 KiB
CSS
.clamp {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 4px;
|
|
}
|
|
|
|
.clamp__text {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.6;
|
|
color: var(--zk-ink);
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: var(--clamp-lines, 3);
|
|
line-clamp: var(--clamp-lines, 3);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.clamp__text--short {
|
|
display: block;
|
|
overflow: visible;
|
|
}
|
|
|
|
.clamp__more {
|
|
font: inherit;
|
|
font-size: var(--fs-2xs);
|
|
font-weight: 500;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
padding: 2px 0;
|
|
border: 0;
|
|
background: none;
|
|
color: var(--zk-blue);
|
|
cursor: pointer;
|
|
transition: color var(--t-fast);
|
|
}
|
|
|
|
.clamp__more:hover {
|
|
color: var(--zk-blue-dark);
|
|
}
|
|
|
|
.clamp__more svg {
|
|
width: 11px;
|
|
height: 11px;
|
|
transition: transform var(--t);
|
|
}
|
|
|
|
/* The headline lifted out of an AI paragraph. Slightly heavier than the body
|
|
and never clamped — it is one sentence by construction, and the point of it
|
|
is that the finding can be read without opening anything. */
|
|
.clamp__lead {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
color: var(--zk-ink);
|
|
font-weight: 500;
|
|
}
|
|
.clamp__lead + .clamp__text { margin-top: 8px; }
|
|
|
|
/* The finding, lifted out of an AI paragraph. Heavier than the body and never
|
|
clamped — it is one sentence by construction, and the whole point is that it
|
|
can be read without opening anything. */
|
|
.clamp__lead {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
line-height: 1.5;
|
|
font-weight: 500;
|
|
color: var(--zk-ink);
|
|
}
|
|
.clamp__lead + .clamp__text { margin-top: 8px; }
|
|
|
|
/* ── The full text, over the page ─────────────────────────────────────────
|
|
Expanding inline was the wrong shape for the audit rail: 320px wide, one
|
|
entry per step, and a 1,500-character rationale pushed a lead's whole
|
|
history off the screen to read one sentence of it. */
|
|
.prose__scrim {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 60;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 24px;
|
|
background: rgba(23, 31, 40, 0.42);
|
|
backdrop-filter: blur(2px);
|
|
-webkit-backdrop-filter: blur(2px);
|
|
animation: zk-fade 0.14s var(--ease) both;
|
|
}
|
|
|
|
.prose__dlg {
|
|
width: min(680px, 100%);
|
|
max-height: min(76vh, 720px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
background: var(--zk-white);
|
|
border-radius: var(--r-lg);
|
|
box-shadow: 0 24px 60px -12px rgba(23, 31, 40, 0.3);
|
|
outline: none;
|
|
animation: zk-rise 0.18s var(--ease) both;
|
|
}
|
|
|
|
.prose__head {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding: 18px 20px 14px 24px;
|
|
border-bottom: 1px solid var(--zk-line-soft);
|
|
}
|
|
|
|
.prose__head h3 {
|
|
margin: 0;
|
|
font-size: var(--fs-sm);
|
|
font-weight: 500;
|
|
line-height: 1.35;
|
|
color: var(--zk-ink);
|
|
}
|
|
|
|
.prose__head button {
|
|
flex: none;
|
|
display: grid;
|
|
place-items: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
cursor: pointer;
|
|
border: none;
|
|
border-radius: var(--r-sm, 6px);
|
|
background: transparent;
|
|
color: var(--zk-muted);
|
|
}
|
|
.prose__head button svg { width: 14px; height: 14px; }
|
|
.prose__head button:hover { background: var(--zk-tint); color: var(--zk-ink); }
|
|
.prose__head button:focus-visible { outline: 2px solid var(--zk-blue); outline-offset: 1px; }
|
|
|
|
.prose__body {
|
|
overflow-y: auto;
|
|
padding: 18px 24px 26px;
|
|
}
|
|
|
|
.prose__body p {
|
|
margin: 0 0 12px;
|
|
font-size: var(--fs-xs);
|
|
line-height: 1.62;
|
|
color: var(--zk-muted);
|
|
white-space: pre-wrap;
|
|
}
|
|
.prose__body p:last-child { margin-bottom: 0; }
|
|
|
|
/* The finding, kept at the top and kept emphasised: a reader who opened this
|
|
to check one thing should not have to find it again. */
|
|
.prose__lead {
|
|
font-size: var(--fs-sm) !important;
|
|
font-weight: 500;
|
|
color: var(--zk-ink) !important;
|
|
padding-bottom: 12px;
|
|
border-bottom: 1px solid var(--zk-line-soft);
|
|
margin-bottom: 16px !important;
|
|
}
|
|
|
|
@keyframes zk-fade { from { opacity: 0 } to { opacity: 1 } }
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.prose__scrim, .prose__dlg { animation: none; }
|
|
}
|