.visitor-message {
  --message-ink:var(--ink); --message-muted:var(--muted); --message-rule:var(--line);
  --message-code:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:36px;
  background:var(--surface); color:var(--message-ink); margin:0 0 56px;
  padding:32px; border:1px solid var(--line); border-radius:0;
}
.message-intro,.visitor-message form { min-width:0; }
.message-kicker { font-size:16px; letter-spacing:.1em; color:var(--message-muted); margin:0 0 12px; }
.message-intro h2 { font:400 clamp(32px,3vw,44px)/1.3 var(--serif); letter-spacing:-.02em; }
.message-intro h2 span { color:var(--message-muted); }
.message-intro>p:last-child { max-width:30em; font-size:18px; line-height:1.7; margin:20px 0 0; color:var(--message-muted); }
.message-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.message-fields label { min-width:0; display:flex; flex-direction:column; gap:8px; font-size:18px; font-weight:400; }
.visitor-message :is(input:not([type=radio]),textarea) {
  width:100%; min-width:0; border:1px solid var(--message-rule); border-radius:0;
  background:var(--paper); color:var(--message-ink); padding:10px 12px; font:400 18px/1.5 var(--message-code);
}
.visitor-message :is(input,textarea)::placeholder { color:var(--message-muted); opacity:1; font:400 18px/1.5 var(--message-code); }
.visitor-message textarea { display:block; min-height:128px; resize:vertical; }
.visitor-message :is(input,textarea,button,a):focus-visible { outline:2px solid var(--message-ink); outline-offset:3px; }
.message-types { border:0; margin:20px 0; padding:0; min-width:0; }
.message-types legend { padding:0; font-size:18px; font-weight:400; margin-bottom:10px; }
.message-choices { display:flex; flex-wrap:wrap; gap:8px; }
.message-choice { position:relative; cursor:pointer; font:400 18px/1.5 var(--sans); }
.message-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.message-choice span { display:block; border:1px solid var(--message-rule); padding:8px 12px; }
.message-choice input:checked+span { background:var(--message-ink); color:var(--paper); border-color:var(--message-ink); }
.message-choice input:focus-visible+span { outline:2px solid var(--message-ink); outline-offset:3px; }
.visitor-message .message-body-label { display:flex; flex-direction:row; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:8px; font-size:18px; font-weight:400; }
.message-count { font-size:16px; color:var(--message-muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
.message-honeypot { display:none; }
.message-submit-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; }
.message-submit-row p { max-width:32em; font-size:16px; line-height:1.6; color:var(--message-muted); }
.message-privacy-trigger { padding:0; border:0; background:transparent; color:var(--message-ink); font:400 18px/1.6 var(--sans); text-decoration:underline; text-underline-offset:4px; white-space:nowrap; }
.message-submit { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:20px; min-height:48px; padding:10px 16px; border:1px solid var(--message-ink); border-radius:0; background:var(--message-ink); color:var(--paper); font:400 18px/1.5 var(--sans); white-space:nowrap; }
.message-feedback { margin-top:16px; font-size:18px; line-height:1.7; overflow-wrap:anywhere; }
.message-feedback:empty { display:none; }
.message-feedback.is-error { color:#983d23; }
.message-privacy-dialog { width:min(640px,calc(100% - 40px)); max-height:80svh; overflow-y:auto; margin:auto; padding:28px; border:1px solid var(--ink); border-radius:0; background:var(--paper); color:var(--ink); }
.message-privacy-dialog::backdrop { background:#0008; }
.message-privacy-head { display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:start; gap:20px; margin-bottom:20px; }
.message-privacy-head h2 { margin:0; font:400 30px/1.4 var(--serif); }
.message-privacy-close { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); }
.message-privacy-close svg { fill:none; stroke:currentColor; stroke-width:1.5; }
.message-privacy-content { font:400 18px/1.7 var(--sans); }
.message-privacy-content p+p { margin-top:16px; }
html:has(.message-privacy-dialog[open]) { overflow:hidden; }
.messages-admin>p { margin-block:20px; }
.message-counts { display:flex; flex-wrap:wrap; gap:16px 28px; padding:20px 0; border-block:1px solid var(--rule); margin:24px 0; font-size:18px; }
.message-admin-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:24px; margin:24px 0; }
.message-admin-filters label,.message-processing label { display:flex; flex-direction:column; gap:12px; min-width:0; font-size:18px; }
.messages-admin :is(input,select,textarea) { width:100%; min-width:0; max-width:100%; min-height:56px; border:1px solid var(--line); border-radius:0; background:var(--paper); padding:12px 16px; color:var(--ink); font:400 18px/1.7 var(--sans); }
.message-admin-list { border-top:1px solid var(--line); margin-top:24px; }
.message-record { display:flex; flex-direction:column; align-items:flex-start; gap:12px; width:100%; border:0; border-bottom:1px solid var(--rule); border-radius:0; background:transparent; color:var(--ink); padding:24px 16px; text-align:left; overflow-wrap:anywhere; }
.message-record-meta { font-size:16px; line-height:1.6; color:var(--muted); }
.message-record strong { font:500 24px/1.35 var(--serif); }
.message-record-excerpt,.message-record-link,.message-record-empty { font-size:18px; line-height:1.7; }
.message-record-empty { padding:24px 0; }
.message-record-link { text-decoration:underline; text-underline-offset:5px; }
.message-pagination { display:flex; align-items:center; gap:16px; margin-top:24px; }
.message-pagination>span { font-size:16px; }
.message-admin-detail { margin-top:36px; border-top:1px solid var(--line); padding-top:28px; scroll-margin-top:24px; }
.message-admin-detail h4 { margin:28px 0 16px; font:500 24px/1.35 var(--serif); }
.message-record-info { display:grid; grid-template-columns:100px minmax(0,1fr); gap:16px; padding-block:24px; border-block:1px solid var(--rule); font-size:18px; line-height:1.7; margin:24px 0; }
.message-record-info dt { color:var(--muted); }
.message-record-info dd { margin:0; overflow-wrap:anywhere; }
.message-original { white-space:pre-wrap; overflow-wrap:anywhere; padding:24px; border:1px solid var(--rule); background:var(--surface); font-size:18px; line-height:1.7; }
.message-processing { display:grid; gap:24px; margin:28px 0; }
.messages-admin .is-error { color:#983d23; }
.studio-page #studio-form:has(#studio-messages:not([hidden])) .studio-savebar { display:none; }
@media(hover:hover) and (pointer:fine) { .message-submit:not(:disabled):hover { color:var(--message-ink); background:transparent; } .message-choice input:not(:checked)+span:hover { border-color:var(--message-ink); } .message-record:hover { background:var(--surface); } }
@media(max-width:767px) {
  .visitor-message { grid-template-columns:1fr; gap:24px; padding:24px; margin-bottom:40px; }
  .message-fields { gap:16px; }
  .message-admin-filters { grid-template-columns:minmax(0,1fr); gap:28px; }
  .message-submit-row { gap:12px; }
  .message-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .message-choice span { padding:8px 10px; text-align:center; }
  .message-pagination { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .message-pagination>span { grid-row:1; grid-column:1/-1; }
  .message-pagination .button { padding-inline:12px; }
  .message-record-info { grid-template-columns:1fr; gap:8px; }
  .message-record-info dd { margin-bottom:16px; }
}
@media(prefers-reduced-motion:reduce) { .visitor-message * { scroll-behavior:auto; } }
