:root { --control-border: var(--link-decoration-neutral); }
/* Frozen writing signup. */
.site-main > .t015-signup { --control-height:max(28px,1.8em); --target-height:calc(var(--control-height) + 16px); --title-inset:0px; margin-block:1.5rem; flex-direction:column; }
.t015-utility-button { font:inherit; color:var(--text); background:transparent; border:1px solid var(--control-border,var(--muted)); border-radius:.22rem; min-height:44px; padding:.4rem .8rem; cursor:pointer; }
.t015-utility-button:hover { background:color-mix(in srgb,var(--text) 5%,var(--background)); border-color:var(--text); }
.t015-utility-button:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
/* Keep one footer row when it fits; wrap signup above utilities when needed. */
.t015-footer-line {
  --control-height: max(28px, 1.8em);
  --target-height: calc(var(--control-height) + 16px);
  --title-inset: calc((var(--target-height) - 1.5em) / 2);
  display: flex; flex-wrap: wrap-reverse; align-items: flex-end; row-gap: .7rem;
}
.t015-footer-line > p { flex: none; max-width: 100%; padding-top: var(--title-inset); }
.t015-footer-stacked .t015-separator { visibility: hidden; }
.t015-footer-stacked > p, .t015-title-stacked .t015-signup__title { padding-top: 0; }
.t015-footer-line .t015-signup__title { white-space: normal; }
.t015-signup__title a { white-space: nowrap; }
.t015-signup {
  --field-width: 11.5rem;
  display: flex; flex-wrap: wrap; width: max-content; flex-shrink: 0;
  align-items: start; gap: .15rem .42rem;
  max-width: 100%; margin: 0; color: var(--muted); font: inherit;
}
.t015-signup__title { margin: 0; padding-top: var(--title-inset); color: inherit; font: inherit; line-height: 1.5; white-space: nowrap; }
.t015-signup__action { width: calc(var(--field-width) + 5.3rem); max-width: 100%; min-width: 0; min-height: calc(var(--target-height) + 1.5em); }
.t015-signup__controls { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .375rem; min-height: var(--target-height); }
/* The label expands the field target; native selection/autofill stays inside 28px. */
.t015-signup__field { display: flex; position: relative; min-width: 0; min-height: var(--target-height); align-items: center; cursor: text; }
.t015-signup input, .t015-signup button {
  appearance: none; box-sizing: border-box; font: inherit; line-height: 1.5;
  color: var(--text); background: transparent; box-shadow: none; border: 0;
}
.t015-signup input { width: 100%; min-width: 0; height: var(--control-height); padding: 0 .65rem 0 2rem; border-radius: .22rem; }
.t015-signup input::placeholder { color: var(--muted); opacity: 1; }
.t015-signup button { min-height: var(--target-height); padding: 8px 0; cursor: pointer; touch-action: manipulation; white-space: nowrap; }
.t015-signup button span { display: flex; align-items: center; box-sizing: border-box; height: var(--control-height); padding-inline: .35rem; border: 1px solid var(--control-border); border-radius: .22rem; }
.t015-signup__icon { width: 1em; height: 1em; position: absolute; left: .65rem; z-index: 1; pointer-events: none; }
.t015-signup__label { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.t015-signup__field::before, .t015-signup[data-design="joined-box"] .t015-signup__controls::before {
  content: ""; position: absolute; inset: 8px 0; border: 1px solid var(--control-border);
  border-radius: .22rem; pointer-events: none; z-index: 1;
}
.t015-signup[data-design="joined-box"] .t015-signup__controls { gap: 0; }
.t015-signup[data-design="joined-box"] .t015-signup__field::before { content: none; }
.t015-signup[data-design="joined-box"] input { border-radius: .22rem 0 0 .22rem; }
.t015-signup[data-design="joined-box"] button span { border: 0; border-left: 1px solid var(--control-border); border-radius: 0 .22rem .22rem 0; }
/* Hover is supplemental; it never removes the active field's focus indicator. */
@media (hover: hover) and (pointer: fine) {
  .t015-signup__field:hover::before,
  .t015-signup button:not(:disabled):hover span,
  .t015-signup[data-design="joined-box"] .t015-signup__controls:hover::before { border-color: var(--text); }
  .t015-signup button:not(:disabled):hover span { background: color-mix(in srgb, var(--text) 5%, var(--background)); }
}
.t015-signup button:not(:disabled):active span { color: var(--text); background: color-mix(in srgb, var(--text) 10%, var(--background)); }
.t015-signup input:focus-visible, .t015-signup button:focus-visible { outline: none; }
.t015-signup__field:has(input:focus-visible)::before,
.t015-signup[data-design="joined-box"] .t015-signup__controls:has(:focus-visible)::before {
  outline: 2px solid var(--focus); outline-offset: 2px; border-color: var(--text);
}
/* One group ring; the inset button ring identifies the second keyboard stop. */
.t015-signup[data-design="joined-box"] button:focus-visible span { outline: 2px solid var(--focus); outline-offset: -3px; }
.t015-signup__field:has(input[aria-invalid="true"])::before,
.t015-signup[data-design="joined-box"] .t015-signup__controls:has(input[aria-invalid="true"])::before { border-color: var(--text); }
.t015-signup button:disabled { cursor: wait; opacity: 1; }
.t015-signup input:read-only { cursor: wait; }
.t015-signup__message { min-height: 1.5em; margin: 0; color: var(--text); line-height: 1.5; overflow-wrap: anywhere; }
.t015-signup.is-confirmed .t015-signup__message { padding-top: var(--title-inset); }
.t015-title-stacked.is-confirmed .t015-signup__message { padding-top: 0; }
/* Static feedback is a programmatic landing point, not an interactive control
   or an extra Tab stop. Keep field/button focus indicators untouched. */
.t015-signup__message:focus { outline: none; }
.t015-signup.is-confirmed .t015-signup__action { width: max-content; }
.t015-signup [hidden] { display: none !important; }
@media (forced-colors: active) {
  .t015-signup__field::before, .t015-signup button span,
  .t015-signup[data-design="joined-box"] .t015-signup__controls::before { border-color: ButtonText; }
  .t015-signup__field:has(input:focus-visible)::before,
  .t015-signup button:focus-visible span,
  .t015-signup[data-design="joined-box"] .t015-signup__controls:has(:focus-visible)::before { outline-color: Highlight; }
}
@media print { .t015-signup { display: none !important; } }
