.viewer-shell { display: flex; flex-direction: column; gap: 2rem; padding-top: 3rem; padding-bottom: 4rem; }
.viewer-intro h1 { margin: 0.4rem 0 0.6rem; }
.viewer-form { display: grid; gap: 1rem; max-width: 34rem; }
.viewer-form label { display: grid; gap: 0.35rem; font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase; }
.viewer-form input { font: inherit; padding: 0.6rem 0.75rem; border: 1px solid rgba(128, 128, 128, 0.45); border-radius: 6px; background: transparent; color: inherit; }
.viewer-status { min-height: 1.2rem; font-size: 0.9rem; opacity: 0.85; }
.viewer-panel { border: 1px solid rgba(128, 128, 128, 0.3); border-radius: 10px; padding: 1.25rem 1.5rem; }
.viewer-panel h2 { margin-top: 0; }
.viewer-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.75rem; margin: 0; }
.viewer-facts div { display: grid; gap: 0.15rem; }
.viewer-facts dt { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
.viewer-facts dd { margin: 0; overflow-wrap: anywhere; }
.viewer-actions { display: flex; gap: 0.75rem; margin-top: 1rem; flex-wrap: wrap; }
.viewer-verification { margin-top: 1rem; padding: 0.75rem 1rem; border-radius: 8px; border: 1px dashed rgba(128, 128, 128, 0.5); }
.viewer-verification code { font-size: 1.2rem; }
#messages { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
#messages button { width: 100%; text-align: left; font: inherit; color: inherit; background: transparent; border: 1px solid rgba(128, 128, 128, 0.3); border-radius: 8px; padding: 0.7rem 0.9rem; cursor: pointer; display: grid; gap: 0.2rem; }
#messages button:hover, #messages button:focus-visible { border-color: currentColor; }
#messages .msg-line { display: flex; justify-content: space-between; gap: 1rem; }
#messages .msg-from { opacity: 0.75; font-size: 0.85rem; overflow-wrap: anywhere; }
#messages .msg-subject { font-weight: 600; }
#messages .msg-time { font-size: 0.8rem; opacity: 0.6; white-space: nowrap; }
.viewer-meta { opacity: 0.75; font-size: 0.9rem; }
#detail-body { white-space: pre-wrap; overflow-wrap: anywhere; background: rgba(128, 128, 128, 0.08); border-radius: 8px; padding: 1rem; max-height: 32rem; overflow: auto; }
.viewer-note { font-size: 0.8rem; opacity: 0.65; }
