/**
 * Dream Comment Features — the panel above the comment form.
 *
 * This file ships byte-identical to 28 sites running four different theme
 * families (heatmap-adaptive, astra, blocksy, wp-bootstrap-starter), each with
 * its own typography and colour settings. So the panel brings its own, rather
 * than inheriting and hoping. Three rules make that work:
 *
 * 1. NO rem UNITS. ANYWHERE. heatmap-adaptive sets `html { font-size: 62.5% }`
 *    — the old 10px trick — so 1rem is 10px on a third of the fleet and 16px on
 *    the rest. The first version of this file used rem and its labels rendered
 *    at 7.2px on alemimenam.com. Instead #dcf-container declares an absolute
 *    font-size in px and everything inside it is em, which makes the container
 *    the single knob for the whole panel and makes the panel immune to whatever
 *    the host theme does to :root.
 *
 * 2. The panel draws its own surface. Because it sets BOTH a background and a
 *    foreground it controls its own contrast, and cannot be washed out by a
 *    theme whose body colour it did not anticipate. Every tone is a custom
 *    property declared on #dcf-container, so a site that ever needs an override
 *    can set four values instead of forking the file.
 *
 * 3. NO text-transform: uppercase, and `text-transform: none` is declared
 *    defensively on the button — several themes uppercase buttons. The network
 *    is Turkish-first, Turkish has dotted and dotless i, and CSS uppercasing
 *    mangles 'İnceleniyor' or 'te'vîl' unless the lang attribute is exactly
 *    right, which across 28 installs it will not be.
 *
 * font-family stays inherited EXCEPT on the headline, which is the one display
 * element and takes Georgia. Everywhere else the typeface is the host site's own
 * voice and there is no reason to take it. See --dcf-display for the caveats.
 *
 * Everything is scoped under #dcf-container, which also buys the specificity to
 * win against theme rules like `#comments p` without a single !important.
 *
 * The cards are divided by hairline rules rather than drawn as three boxes. The
 * rules are inset from the top and bottom rather than running the full height —
 * a manuscript column divider, which is the world this content comes from, and
 * it keeps three stacked grey rectangles off the page.
 */

#dcf-container {
    /* The tones. Warm greys rather than neutral — the network's subject is
       manuscript dream interpretation, and a cool clinical grey reads as a
       systems dashboard. Every one of these is a custom property so a site that
       ever needs an override sets values rather than forking the file. */
    --dcf-ink: #23201c;
    --dcf-ink-mute: #6c655b;
    --dcf-surface: #ffffff;
    --dcf-line: #e4dfd7;

    /* One accent, and it marks the things that can be clicked: the toggle
       button, and the muabbir.net CTA at the foot of the list it opens. Deep
       teal because the real primary action on this page is the comment form
       directly below, and nothing in the panel should out-shout it — the toggle
       is outlined and the muabbir.net CTA solid, which ranks the two against
       each other without either competing with the textarea. */
    --dcf-accent: #14655e;
    --dcf-accent-line: #a9c8c4;
    --dcf-accent-wash: #eff6f5;

    /* The headline, and deliberately NOT the accent above. The accent means
       "this is clickable" everywhere else in the panel, and the headline is a
       statement, not a control — borrowing the teal would invite a tap that does
       nothing. Deep madder instead: the heading of a manuscript was written in
       red ink while the body stayed black, which is the same job this line does
       and comes from the same world as the content. Dark enough to read as ink
       rather than as an error, and 8.4:1 on the surface, so it passes at any
       size. */
    --dcf-headline-ink: #7a3b2e;

    /* Georgia for the headline only. It is on Windows and macOS/iOS but NOT on
       Android or most Linux, where this falls through to the platform serif
       (Noto Serif via the generic) — still a serif, still the intended contrast
       against the sans body, just not the same face. That is an acceptable
       degradation for one line and the reason this is not used anywhere else.
       Georgia's numerals are old-style, with descenders on 3 4 5 7 9, so it must
       stay off the cards: '114.472' would bounce along the baseline. */
    --dcf-display: Georgia, 'Times New Roman', Times, serif;

    /* Presence. Green reads as available in every locale this ships to, and
       muabbir.net's dashboard already uses a green dot with a halo for the same
       fact — a visitor with both open should not have to learn two systems. The
       resting grey is warm, so it belongs to this panel rather than looking like
       a disabled control. */
    --dcf-online: #2f9e63;
    --dcf-online-ink: #1d7a4a;
    --dcf-online-halo: rgba(47, 158, 99, 0.22);
    --dcf-resting: #b6ada0;

    /* The chip's own tint when someone is at the desk. Opaque rather than an
       alpha of --dcf-online, like --dcf-accent-wash above it: the chip sits on
       whatever the theme painted behind the panel, and a translucent wash would
       read differently on every site in the fleet. */
    --dcf-online-wash: #eef7f1;
    --dcf-online-line: #bfe0cd;

    /* The anchor. See rule 1 in the header — this is px on purpose and must
       stay px. Everything below is em and scales from here. */
    font-size: 16px;
    line-height: 1.5;
    color: var(--dcf-ink);
    margin: 1.25em 0;
}

#dcf-container *,
#dcf-container *::before,
#dcf-container *::after {
    box-sizing: border-box;
}

/* --- who is here, and whether they are at the desk --- */

/* One voice, one weight, one colour. The name and the suffix used to be ranked
   against each other — bold name, muted suffix — which split a four-word line
   into two things to read. It is a single sentence about a single person, so it
   is set as one.

   LEFT, not centred (2026-08-05). It was centred while the panel opened the
   comment section. Since 2.10.0 the invitation paragraph sits above it, left
   aligned against a 520px measure, and a centred sentence directly under
   left-aligned prose reads as a mistake rather than as a heading. Both are
   sentences; sentences start at the same place.

   The cards below are unaffected: their centring is inside three equal columns
   and is about the numeric rhythm, not about this text block. Same for the load
   button, which is a full-width control with a centred label. */
#dcf-container .dcf-headline {
    margin: 0 0 0.25em;
    padding: 0;
    font-family: var(--dcf-display);
    font-size: 1.0625em;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    /* Kept with the left alignment: it stops the line breaking to leave one
       orphaned word, which is as ugly ranged left as it is centred. */
    text-wrap: balance;
    color: var(--dcf-headline-ink);
}

/* Both spans now inherit everything, so these rules exist only to defend: the
   line contains the interpreter's display name, and themes do style bare spans
   inside a paragraph. #dcf-container + class outranks anything like
   `#comments p span`, so whatever arrives from the theme loses here. */
#dcf-container .dcf-name,
#dcf-container .dcf-headline-suffix {
    font-family: inherit;
    font-weight: inherit;
    font-style: inherit;
    color: inherit;
}

/* Reserves its line from first paint — it sits directly above the cards, so a
   late insertion would shove the whole panel down.

   A BOUNDED CHIP, not a line of text (2026-08-06, the user's call: 'the
   indicator does not seem like an indicator'). Every property it had said
   caption — 13px muted grey, no edges, sitting under a bold serif headline —
   and an unbounded run of text reads as a footnote to the name above it rather
   than as the state of anything. The border and the tint are what make it an
   object; a reader recognises a status pill without being taught one.

   width: fit-content and NOT inline-flex. The chip has to shrink to its text,
   but as an inline-level box its horizontal position would be decided by
   whatever text-align arrives from the theme, and the panel does not inherit
   layout decisions from 30 stylesheets. A block-level flex box at fit-content
   is left-aligned because it is a block, not because a theme agreed.

   flex-start follows the headline's alignment and is not a separate decision:
   this line is a caption to the name above it, and a centred caption under a
   ranged-left sentence detaches from the thing it is captioning. If the
   headline is ever centred again, this goes back with it. */
#dcf-container .dcf-presence {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45em;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 0.7em;
    padding: 0.3em 0.75em;
    font-size: 0.8125em;
    line-height: 1.3;
    color: var(--dcf-ink-mute);
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-line);
    border-radius: 999px;
}

/**
 * The dot. Resting is the honest default, so it is the state that renders
 * without a modifier class — if the AJAX call never lands, the panel says the
 * interpreter is resting rather than claiming they are here.
 *
 * Resting is a RING and online is a filled disc. The two states used to differ
 * only in colour, which left the common case — resting, most of the day — as a
 * grey dot indistinguishable from a bullet. Hollow against filled is a
 * difference in kind rather than in shade, so it survives a glance, a poor
 * screen and a colourblind reader; the colour is then confirmation rather than
 * the whole message.
 *
 * The ring is an inset shadow, not a border: a border would eat into the 0.6em
 * box under border-box and leave a smaller circle than the filled state.
 */
#dcf-container .dcf-dot {
    flex: none;
    width: 0.6em;
    height: 0.6em;
    border-radius: 50%;
    background: none;
    box-shadow: inset 0 0 0 2px var(--dcf-resting);
}

/* The chip takes the state too, not just the words inside it. A green dot in a
   grey pill reads as one component reporting and another not listening. */
#dcf-container .dcf-presence.is-online {
    color: var(--dcf-online-ink);
    background: var(--dcf-online-wash);
    border-color: var(--dcf-online-line);
}

/* The halo is the whole reason this reads as live rather than as a bullet. It
   is a ring rather than an animation on purpose: a pulsing dot above a comment
   form is a notification badge, and this is a fact, not a demand. */
#dcf-container .dcf-presence.is-online .dcf-dot {
    background: var(--dcf-online);
    box-shadow: 0 0 0 3px var(--dcf-online-halo);
}

/* Flex with equal basis, and the third card is hidden with visibility rather
   than display — so all three columns hold their width from first paint whether
   or not the reply figure arrives. A cluster below the sample floor shows two
   cards in a three-column rhythm, which is a fair price for never reflowing the
   row under the reader's eyes. */
#dcf-container .dcf-cards {
    display: flex;
    align-items: stretch;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-line);
    border-radius: 10px;
    padding: 0.875em 0.375em;
}

#dcf-container .dcf-card {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.15em;
    padding: 0 0.5em;
    text-align: center;
}

/* The divider. Inset vertically, so it reads as a column rule rather than a
   table border. */
#dcf-container .dcf-card + .dcf-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.35em;
    bottom: 0.35em;
    width: 1px;
    background: var(--dcf-line);
}

#dcf-container .dcf-card-title {
    display: block;
    font-size: 0.8125em;
    font-weight: 600;
    font-style: normal;
    letter-spacing: 0.04em;
    line-height: 1.25;
    text-transform: none;
    color: var(--dcf-ink-mute);
}

/**
 * The number is the content; everything else labels it.
 *
 * Sized in px/vw rather than em because it is the one element whose width can
 * overflow its column: '124.777' is seven glyphs in a third of a phone screen.
 * The vw term is what keeps it inside that column on a 360px handset; the px
 * bounds are what stop it turning into a headline on a desktop and a footnote
 * inside a narrow sidebar-flanked column.
 *
 * Tabular figures so 124.777 and 28 sit on the same rhythm instead of wobbling.
 */
#dcf-container .dcf-card-number {
    display: block;
    font-size: clamp(20px, 6.2vw, 30px);
    font-weight: 700;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    letter-spacing: -0.01em;
    white-space: nowrap;
    color: var(--dcf-ink);
}

/* 'saat' belongs to the number and carries its weight — size and tone are what
   keep it from competing, not a lighter stroke. */
#dcf-container .dcf-card-unit {
    font-size: 0.46em;
    font-weight: 700;
    letter-spacing: 0;
    color: var(--dcf-ink-mute);
}

#dcf-container .dcf-card-def {
    display: block;
    font-size: 0.8125em;
    font-weight: 400;
    line-height: 1.35;
    color: var(--dcf-ink-mute);
    text-wrap: balance;
}

/* --- the list, and the button that asks for it --- */

/**
 * A full reset, not a tweak. Themes style bare `button` heavily — heatmap-
 * adaptive alone sets font-size, line-height, border, background and radius on
 * it, and Astra adds padding and letter-spacing — so every property that could
 * arrive from somewhere else is declared here rather than left to chance.
 */
#dcf-container #dcf-load {
    -webkit-appearance: none;
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    width: 100%;
    min-width: 0;
    max-width: none;
    height: auto;
    min-height: 0;
    margin: 0.625em 0 0;
    padding: 0.7em 1em;
    font-family: inherit;
    font-size: 0.9375em;
    font-weight: 600;
    font-style: normal;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
    text-shadow: none;
    text-align: center;
    color: var(--dcf-accent);
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-accent-line);
    border-radius: 8px;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

/**
 * The chevron, drawn in CSS rather than shipped as an SVG or an icon font: it is
 * two borders on an empty span, so it inherits the button's colour for free and
 * costs the 28 sites no extra request.
 *
 * It points down when closed and up when open, rotating from aria-expanded —
 * the same attribute the button reports to a screen reader, so the visual state
 * and the announced state cannot disagree.
 */
#dcf-container .dcf-chevron {
    flex: none;
    width: 0.5em;
    height: 0.5em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-0.15em) rotate(45deg);
    transform-origin: center;
    transition: transform 0.2s ease;
}

#dcf-container #dcf-load[aria-expanded="true"] .dcf-chevron {
    transform: translateY(0.1em) rotate(-135deg);
}

#dcf-container #dcf-load:hover,
#dcf-container #dcf-load:focus-visible {
    color: var(--dcf-accent);
    background: var(--dcf-accent-wash);
    border-color: var(--dcf-accent);
}

/* Never remove the focus ring — this is the one control in the panel. */
#dcf-container #dcf-load:focus-visible {
    outline: 2px solid var(--dcf-accent);
    outline-offset: 2px;
}

#dcf-container #dcf-list {
    margin-top: 0.5em;
}

#dcf-container .dream-comment-features {
    padding: 0.5em 0.25em;
    border-top: 1px solid var(--dcf-line);
}

#dcf-container .dream-comment-features:first-child {
    border-top: 0;
}

#dcf-container .dream-comment-features p {
    margin: 0;
    padding: 0;
    font-size: 0.875em;
    font-weight: 400;
    line-height: 1.45;
    color: var(--dcf-ink);
}

#dcf-container .dream-comment-features strong {
    font-weight: 600;
    color: inherit;
}

#dcf-container .dream-comment-features a {
    color: var(--dcf-accent);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

#dcf-container .dream-comment-features a:hover,
#dcf-container .dream-comment-features a:focus-visible {
    text-decoration: none;
}

#dcf-container .dream-comment-features small {
    font-size: 0.8571em; /* 12px against the row's 14px */
    color: var(--dcf-ink-mute);
}

/* The status marker keeps the emoji at the row's own size, so a theme that
   shrinks `small` cannot turn ✅ into a speck. */
#dcf-container .dream-comment-features small.comment-approved,
#dcf-container .dream-comment-features small.comment-pending,
#dcf-container .dream-comment-features small.comment-deleted {
    font-size: 1em;
    color: inherit;
}

/**
 * The mask.
 *
 * activity-list.php has always emitted <span class="blur">***</span> for pending
 * and trashed authors, and nothing has ever defined this class — so on all 28
 * live sites the asterisks render as plain text. Defining it is the point of
 * this rule: the three characters should read as deliberately withheld, not as
 * someone's actual name.
 *
 * The two characters before it are NOT blurred, and must not be. They are how a
 * visitor recognises their own submission without logging in.
 */
#dcf-container .blur {
    filter: blur(2.5px);
    opacity: 0.75;
    user-select: none;
}

/**
 * The muabbir.net CTA, at the foot of the expanded list. Turkish sites only —
 * the other six locales ship no copy for it and it never renders there.
 *
 * It replaces a bordered grey box that used to sit above the form on every
 * pageview. Down here it is the last thing someone sees after scanning the list
 * for their own dream and not finding it, which is the moment the offer is
 * actually useful — so it is separated by space and a rule rather than drawn as
 * another card competing with the one above.
 */
#dcf-container .dcf-cta {
    margin-top: 0.75em;
    padding-top: 0.75em;
    border-top: 1px solid var(--dcf-line);
    text-align: center;
}

#dcf-container .dcf-cta-text {
    margin: 0 0 0.6em;
    padding: 0;
    font-size: 0.8125em;
    line-height: 1.45;
    color: var(--dcf-ink-mute);
}

/* Solid, unlike the panel's outlined toggle: this is a destination, and the
   toggle above it is a control. Same accent so they read as one family. */
#dcf-container .dcf-cta-button {
    display: inline-block;
    margin: 0;
    padding: 0.55em 1.2em;
    font-family: inherit;
    font-size: 0.8125em;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
    text-shadow: none;
    color: var(--dcf-surface);
    background: var(--dcf-accent);
    border: 1px solid var(--dcf-accent);
    border-radius: 6px;
    box-shadow: none;
}

#dcf-container .dcf-cta-button:hover,
#dcf-container .dcf-cta-button:focus-visible,
#dcf-container .dcf-cta-button:visited {
    color: var(--dcf-surface);
    text-decoration: none;
}

#dcf-container .dcf-cta-button:focus-visible {
    outline: 2px solid var(--dcf-accent);
    outline-offset: 2px;
}

/**
 * The invitation that opens the comment section, above the panel.
 *
 * Unframed, and that is the whole design. It is prose the visitor is meant to
 * read, arriving straight off the end of an article, so it should look like the
 * article kept going for two more paragraphs rather than like a notice bolted
 * to the top of a form. The panel below it already carries the borders, the
 * cards and the accent; a box here would make two framed things stacked and
 * turn the section into a dashboard.
 *
 * Left-aligned, unlike .dcf-presubmit below. That one is a single centred line
 * against the box it warns about; this is multi-paragraph prose, and centred
 * prose is read a line at a time instead of a sentence at a time.
 *
 * SIZE AND COLOUR COME FROM THE SITE (2026-08-05). This block used to declare
 * 15px and #23201c, on the reasoning that a file shipping to 31 themes should
 * not trust any of them. That was right for #dcf-container, which is a panel
 * and paints its own surface — and wrong here, because this is prose. Prose
 * that is two points off the article above it does not read as designed, it
 * reads as pasted in. It now inherits, and so does .dcf-search-desc, which is
 * its neighbour and must not disagree with it.
 *
 * NO max-width (removed 2026-08-05). It was 520px, and on a 1440px desktop that
 * left these paragraphs visibly narrower than the article directly above them —
 * reading as a pasted-in column rather than as the page continuing. The block
 * now takes the width of whatever holds it. The search field keeps a measure of
 * its own, in .dcf-search-form, because a field and a paragraph do not want the
 * same width. ch was never a candidate for either: it is the width of the "0"
 * glyph, and in a serif with old-style figures 72ch measured out to 88 real
 * characters.
 */
.dcf-invitation {
    margin: 0 0 1.4em;
    padding: 0;
}

/**
 * The search block, above the invitation. The form inside it belongs to
 * dream-relevanssi-search and is NOT styled from here — it ships its own inline
 * rules with !important on every property, deliberately, because it lands in 28
 * themes' sidebars. Nothing in this file can override it and nothing here
 * should try. Only the title and the description below are ours.
 *
 * Same measure as the invitation, so the two blocks share a left edge and a
 * ragged right. The box itself caps at 520px on its own, which is the same
 * number by coincidence rather than by agreement — if DRS changes it, this does
 * not follow.
 */
.dcf-search {
    margin: 0 0 1.4em;
    padding: 0;
}

/**
 * The two headings, and why they are reached through an id.
 *
 * SIZE IS THE SITE'S. font-size is deliberately NOT declared here. Themes set
 * their own heading scale and this block should sit inside it — on
 * heatmap-adaptive that is 1.5em, which measured 27px against an 18px body and
 * looks right. Declaring a size would mean winning an argument that should not
 * be had.
 *
 * ONE RULE FOR BOTH, deliberately. The two headings must be identical, and the
 * cheapest way to guarantee that is for there to be nothing to keep in step.
 * Both are h4: the article owns the h2 level on these pages and the comment
 * section should not compete with it.
 *
 * EVERYTHING ELSE IS DEFENDED, and that is what the id is for. This started as
 * a plain `.dcf-search-title` rule and lost to
 * `#heatmapthemead-the-content-container h2` — an ID selector beats any number
 * of classes. On that theme only font-size was at stake, but the same gap
 * applies to every other property here, on 29 themes not yet looked at: a theme
 * with `#content h4 { text-transform: uppercase }` would break the Turkish and
 * this file would have no way to say otherwise.
 *
 * `#dcf-search .dcf-search-title` is (1,0,1,0) and outranks a theme's
 * (1,0,0,1), so the no-!important rule at the top of this file survives. It is
 * the same reason #dcf-container exists.
 *
 * text-transform is the load-bearing one: tr_TR reads 'Rüyada kedi görmek' and
 * Turkish dotted and dotless i do not survive CSS uppercasing where `lang`
 * cannot be trusted across 30 installs.
 */
#dcf-search .dcf-search-title,
#dcf-invitation .dcf-invitation-title {
    margin: 0 0 0.6em;
    padding: 0;
    font-family: inherit;
    font-weight: 700;
    font-style: normal;
    line-height: 1.35;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    text-decoration: none;
    text-shadow: none;
    color: inherit;
    background: none;
    border: 0;
}

/* Body copy of the host site, at the host site's size and colour. It explains
   the box above it and belongs to the page's own voice, so the only thing this
   file has an opinion about is the space around it. */
#dcf-search .dcf-search-desc {
    margin: 0;
    padding: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

/**
 * The field's own measure, separate from the text's.
 *
 * The block runs the full width of whatever column holds it, because prose that
 * stops short of the article above it reads as a different, narrower thing. A
 * search field at that width would not — so the field alone is capped here.
 *
 * This is also how .drs-box's `margin: 0 auto !important` is neutralised
 * without writing !important: auto margins compute to zero when the parent is
 * already the element's max width, so the field stays hard left under the
 * heading instead of drifting to the middle of the column.
 */
.dcf-search-form {
    max-width: 520px;
}

/**
 * The section heading. A full reset like the load button, and for the same
 * reason: this ships to four theme families that style bare `h2` hard — size,
 * margins, colour, a bottom border, letter-spacing, and in two of them a
 * text-transform. Every property that could arrive from a theme is declared.
 *
 * `text-transform: none` is not defensive boilerplate here. tr_TR reads
 * 'Hâlâ İçine Sinmediyse', and a theme uppercasing that would turn 'İ' into 'I'
 * on any install where `lang` is not what CSS thinks it is — Turkish dotted and
 * dotless i do not survive the round trip.
 *
 * Deliberately NOT the panel's madder headline ink or its Georgia stack. The
 * panel headline three paragraphs below is the one coloured, serif line in this
 * whole block; a second one above it would leave the reader with two things
 * competing to be the title. This is body ink, one step up in size and weight.
 */
.dcf-invitation-title {
    margin: 0 0 0.5em;
    padding: 0;
    font-family: inherit;
    font-size: 1.15em;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    text-decoration: none;
    text-shadow: none;
    color: inherit;
    background: none;
    border: 0;
}

/* Body copy of the host site, like .dcf-search-desc above. These two blocks are
   neighbours and any difference between them reads as a mistake, so they take
   their size and colour from the same place: the theme. */
#dcf-invitation p {
    margin: 0 0 0.7em;
    padding: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.dcf-invitation p:last-child {
    margin-bottom: 0;
}

/**
 * The one emphasised sentence in each of these two blocks — the search
 * description's closing line and the invitation's credit line. See
 * dcf_emphasise_last_sentence().
 *
 * Semibold italic, not bold (2026-08-06, the user's call). Bold on two
 * sentences turned the whole area above the comment box into noise; 600 with
 * the italic carries the same emphasis at a fraction of the weight.
 *
 * font-style is declared rather than left to the browser's default for <em>,
 * because a theme that resets `em { font-style: normal }` would otherwise take
 * the italic away and leave weight doing the work alone. Both properties are
 * stated so neither depends on what the site happens to say.
 */
#dcf-search .dcf-search-desc em,
#dcf-invitation p em {
    font-weight: 600;
    font-style: italic;
}

/**
 * The last line before the textarea, and now literally against it.
 *
 * Quiet on purpose. It is a caution, not a pitch, and anything loud here would
 * compete with the very thing it is asking the visitor to do.
 *
 * Lives OUTSIDE #dcf-container since it moved inside the form, so like
 * .dcf-postsubmit below it repeats the few tokens it needs instead of
 * inheriting them — there is no container to inherit from, and an em font-size
 * out here would be measured against whatever the theme sets on the form.
 * 13px is the same size the em version resolved to inside the panel.
 */
.dcf-presubmit {
    margin: 0 0 0.5em;
    padding: 0;
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
    color: #6c655b;
}

/**
 * The save-this-page notice. Lives outside #dcf-container — it is rendered after
 * the form, not in the panel — so it repeats the tokens it needs rather than
 * inheriting them.
 *
 * The accent wash rather than the plain surface. It was chosen when this only
 * appeared in answer to a submission and had to read as an acknowledgement;
 * it is now on the page from first paint (2026-08-05) and the wash is what
 * keeps it from being read as part of the form it sits under. Kept for the
 * second reason, not the first.
 */
.dcf-postsubmit {
    margin: 0.9em 0;
    padding: 0.85em 1em;
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
    color: #23201c;
    background: #eff6f5;
    border: 1px solid #a9c8c4;
    border-radius: 8px;
}

.dcf-postsubmit p {
    margin: 0;
    padding: 0;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

/**
 * Copy the link. A full reset, not a tweak — themes style bare `button` hard
 * (heatmap-adaptive sets font-size, line-height, border, background and radius;
 * Astra adds padding and letter-spacing), and this one sits in theme territory
 * outside #dcf-container with nothing of ours between it and them.
 *
 * Outlined rather than solid: the notice it lives in is already an
 * acknowledgement, and the real next action is the visitor bookmarking or
 * sharing the page. This offers help with that, it does not demand a click.
 *
 * text-transform: none for the same reason as the panel's button — Turkish
 * dotted and dotless i do not survive CSS uppercasing across 28 installs, and
 * 'Bağlantıyı kopyala' is exactly the phrase that would break.
 */
.dcf-postsubmit .dcf-copy-button {
    display: inline-block;
    margin: 0.7em 0 0;
    padding: 0.5em 1.1em;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    font-style: normal;
    line-height: 1.3;
    letter-spacing: normal;
    text-align: center;
    text-transform: none;
    text-decoration: none;
    color: #14655e;
    background: #ffffff;
    border: 1px solid #a9c8c4;
    border-radius: 6px;
    box-shadow: none;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.dcf-postsubmit .dcf-copy-button:hover,
.dcf-postsubmit .dcf-copy-button:focus {
    background: #eff6f5;
    border-color: #14655e;
}

/* Focus has to survive the reset above, because removing an outline without
   replacing it is how a keyboard user loses their place. */
.dcf-postsubmit .dcf-copy-button:focus-visible {
    outline: 2px solid #14655e;
    outline-offset: 2px;
}

/* Confirmed. Green rather than the accent, matching the presence dot's meaning
   of 'yes, this happened' — and it is a state, not a second action, so the
   border goes with it. */
.dcf-postsubmit .dcf-copy-button.is-done {
    color: #1d7a4a;
    background: #ffffff;
    border-color: #2f9e63;
    cursor: default;
}

@media (prefers-reduced-motion: reduce) {
    .dcf-postsubmit .dcf-copy-button {
        transition: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    #dcf-container #dcf-load,
    #dcf-container .dcf-chevron {
        transition: none;
    }
}

/**
 * Narrow phones: keep the three abreast — stacking them would put the reply time
 * below the fold, which is the whole reason the panel moved here — but give the
 * dividers and padding back their room.
 *
 * Only the container's font-size moves. Every label, definition and the button
 * scale from it in one step, which is the payoff for banning rem: there is
 * exactly one number to turn.
 */
@media (max-width: 420px) {
    #dcf-container {
        font-size: 15px;
    }

    #dcf-container .dcf-cards {
        padding: 0.75em 0.125em;
    }

    #dcf-container .dcf-card {
        padding: 0 0.3em;
    }
}

/* =========================================================================
   wpDiscuz overrides — NOT the panel
   =========================================================================

   Everything above this line is ours, scoped under #dcf-container, and uses no
   !important. Everything below is the opposite on both counts, deliberately:
   these target wpDiscuz's own markup, which is outside our container and comes
   with its own stylesheet, so there is nothing of ours to scope to and no way
   to win on specificity alone against rules we do not control and cannot
   anticipate across four theme families.

   Why they are here at all: this exact set was maintained by hand in 26
   separate per-site files under wp-content/uploads/custom-css-js/ — mycss.css,
   10000045.css, r-p.css, so_css.css, 2149424.css and a dozen more names. Same
   intent, sixteen filenames, no way to change it once. Consolidating them here
   is the point.

   The per-site file stays the place for anything genuinely per-site. This
   section is only for rules that should be true on every site.
   ========================================================================= */

/* Identity fields. The network never asks a dreamer for an email address or a
   website, and the two are removed rather than restyled.
   PRECONDITION: the field must NOT be required in the wpDiscuz form (Comment
   Forms → the form → the field). Hiding a required input makes the browser
   refuse to submit and then fail to explain why, because it cannot focus a
   display:none field to show the message. All 26 sites already carry
   required=0 on the email field; verify before adding a site. */
.wc_email-wrapper,
.wc_website-wrapper {
    display: none !important;
}

/* Account furniture. These sites have no reader accounts — the only logged-in
   user is the interpreter — so a log-in link and a user-settings panel offer
   a door that opens onto nothing. */
.wpd-login,
.wpdiscuz-user-settings {
    display: none;
}

/* Replies to a dream are the interpreter's job, not the crowd's. Hiding the
   reply button on top-level comments only: nested replies keep theirs, so a
   dreamer can still answer inside their own thread. */
div.wpd_comment_level-1 > div.wpd-comment-wrap > div.wpd-comment-right > div.wpd-comment-footer > div.wpd-reply-button {
    display: none !important;
}

/* The thread toggle is the control that reveals an interpretation, so it is
   sized and coloured to be found rather than left at wpDiscuz's default. */
.wpd-toggle i {
    font-size: 20px !important;
    color: #0088cc !important;
}

span.wpd-view-replies-text {
    font-size: 16px !important;
    font-weight: 600;
}

/* A dream takes more than two lines to tell. Three times the 48px wpDiscuz gives
   the box, so it invites the whole thing rather than a sentence the visitor then
   has to scroll inside.

   The live selector is the plain textarea. **Quill is off on all five deployed
   sites** — measured in a browser, 2026-08-03: every one renders
   `#wpdcom.wpd-layout-2` with a `textarea.wc_comment` and no `.ql-editor` node at
   all. Reading the page source is not enough to tell: `ql-editor` appears there
   as CSS text whether or not the editor is ever instantiated, which is exactly
   how the first attempt at this rule went to the wrong element.

   `min-height` rather than `height` on purpose. wpDiscuz sets `height: 48px`
   (`#wpdcom.wpd-layout-2 .wpd-form .wpdiscuz-textarea-wrap textarea`) and grows
   it from JS as the visitor types; min-height beats both an explicit height and
   an inline one, so the floor holds without fighting the auto-grow.

   The .ql-editor selector rides along for the case where someone turns the rich
   editor back on in wpDiscuz's settings — it costs one line and otherwise the box
   would silently drop to 65px. */
#wpdcom .wpd-form .wpdiscuz-textarea-wrap textarea,
#wpdcom .ql-editor {
    min-height: 144px !important;
}

/* wpDiscuz's per-thread meta line (vote/date/count strip above a thread) adds
   nothing next to the panel's own counters, so it is hidden. !important matches
   the rest of this block — wpDiscuz's own rules are ID-scoped. */
.wpd-thread-info {
    display: none !important;
}

/* The house rule, a custom HTML field in the wpDiscuz form. wpDiscuz renders it
   inside .wpd-form-col-right (49%, floated right, text-align:right) directly
   under the Send button, so it is already positioned as a footnote to that
   button — this only makes it read like one. Nothing in wpDiscuz, Blocksy or
   the other three theme families targets .comment-rules, so #wpdcom is enough
   specificity and no !important is needed: unlike the rest of this block, the
   markup is ours.

   The <small> is where the size lives because the field's stored HTML puts it
   there; setting it on the <p> alone would be overridden by the theme's own
   `small { font-size: 80% }`.

   #6c655b is --dcf-ink-mute from the panel above, hardcoded because these custom
   properties are declared on #dcf-container and do not reach inside the form.
   5.6:1 on white, which passes AA at 12px. */
#wpdcom .comment-rules {
    margin: 12px 0 0;
    line-height: 1.45;
}

#wpdcom .comment-rules small {
    font-size: 12px;
    font-style: italic;
    color: #6c655b;
}

/* The comment section's own background.

   wpDiscuz has a Custom CSS box in its settings, and on this fleet it was used
   to paint the whole comment area — alemimenam.com carries
   `.comments-area{width:auto;background-color:#f0ffe6;padding:10px}`, printed
   inline as wpdiscuz-frontend-css-inline-css. It is per-site data in the
   wpDiscuz options rather than code, and the colour is not the same on every
   site.

   Removed here rather than by editing each site's setting, for two reasons.
   Editing wpDiscuz options means a read-modify-write on serialised data, which
   has already broken a comment form on this network once. And a per-site fix is
   exactly what this section exists to stop: the whole point of consolidating 26
   files was that a rule true everywhere should be written once.

   `transparent`, not a colour of our own. The section then shows whatever the
   page behind it shows, which is the site's real background — the blocks above
   the form inherit their type from the theme and now sit on the theme's own
   surface too, instead of on a tint chosen years ago in a settings box.

   The padding is deliberately left alone. It is spacing, not colour, and with
   no background to define an edge it costs nothing to keep. */
.comments-area {
    background-color: transparent !important;
}
