.guestbook{padding:35px 0 40px}
.guestbook-page .page{min-height:100vh;display:flex;flex-direction:column}
.guestbook-page main{flex:1;padding-top:45px}
.guestbook-page .guestbook{padding-top:28px;padding-bottom:55px}
.guestbook-page .section-heading h1{font-size:32px;letter-spacing:-.8px;margin:0;font-weight:680}
.guestbook .section-heading{margin-bottom:6px}
.guestbook-intro{font-size:15px;color:var(--muted);margin:0 0 23px}
.quiet-button{padding:3px 0;border:0;background:transparent;color:var(--muted);font-size:13px;white-space:nowrap}
.quiet-button:hover{color:var(--blue)}
.guestbook-form{padding:21px 23px;background:var(--soft);border:1px solid var(--line);border-radius:9px}
.field-label{display:block;font-size:14px;font-weight:550;margin-bottom:7px}
.field-label span{color:var(--muted);font-weight:400;font-size:13px}
.guestbook-form input,.guestbook-form textarea,.admin-form input{display:block;width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:15px;padding:10px 12px;border-radius:6px}
.guestbook-form input{max-width:270px;margin-bottom:16px}
.guestbook-form textarea{resize:vertical;min-height:110px;line-height:1.85}
textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.guestbook-form textarea::placeholder,.guestbook-form input::placeholder{color:var(--muted)}
.guestbook-form .honey{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.compose-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:14px}
.compose-hint{color:var(--muted);font-size:12px;margin:0}
.char-count{display:block;font-variant-numeric:tabular-nums;margin-top:3px}
.primary-button{border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:6px;font-size:14px;padding:8px 19px;white-space:nowrap;line-height:1.8}
[data-theme=dark] .primary-button{color:#172532}
.primary-button:disabled{opacity:.55}
.form-status{margin:12px 0 0;font-size:13px;color:var(--muted);min-height:0}
.form-status:empty{display:none}
.form-status[data-error=true]{color:#bc3e3e}
[data-theme=dark] .form-status[data-error=true]{color:#ffabab}
.message-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 0 5px;font-size:13px;color:var(--muted)}
.owner-controls{display:flex;align-items:center;gap:13px}
.owner-controls[hidden]{display:none}
.owner-controls select{font:inherit;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:6px 9px;max-width:140px}.message-actions{display:inline-flex;gap:14px;margin-left:auto;align-items:center}.message-actions button{margin-left:0;min-height:32px}.toggle-message{border:0;background:transparent;color:var(--blue);font:inherit;font-size:13px;padding:0 2px}.toggle-message:hover{text-decoration:underline}.toggle-message:disabled{opacity:.5;cursor:wait}.message-visibility-badge{font-size:11px;color:var(--muted);background:var(--soft);padding:2px 7px;border-radius:5px}.message[data-hidden=true]{border-left:2px solid var(--blue);padding-left:12px;background:var(--blue-soft)}.message[data-hidden=true] .message-visibility-badge{color:var(--blue)}
@media(max-width:620px){.message-summary{flex-wrap:wrap}.owner-controls{flex-wrap:wrap;gap:10px}.message-actions{gap:16px}.message-actions button{min-height:38px}}
.owner-badge{color:var(--blue);font-size:12px}
.message-list{list-style:none;margin:0;padding:0}
.message{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}
.message-avatar{width:32px;height:32px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:14px;border-radius:50%;line-height:1}
.message-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 12px;line-height:1.7}
.message-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.message time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.message-content{font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 0}
.delete-message{margin-left:auto;padding:0 2px;border:0;background:transparent;color:#ad5757;font-size:12px}
.delete-message:hover{text-decoration:underline}
.guestbook-empty{text-align:center;padding:30px 0 17px;color:var(--muted);font-size:14px}
.guestbook-empty svg{margin:0 auto 10px;width:27px;height:27px;color:var(--muted);opacity:.7}
.guestbook-empty p{margin:0}
.more-messages{display:block;margin:19px auto 0;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--muted);font-size:13px;padding:6px 18px}
.more-messages[hidden],.guestbook-empty[hidden]{display:none}
.admin-dialog{max-width:420px}
.admin-form,.delete-confirm{padding:25px}
.admin-form h2,.delete-confirm h2{font-size:22px;margin:0 0 8px;line-height:1.5}
.dialog-description{margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.85}
.dialog-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-top:21px}
.secondary-button{padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:transparent;font-size:14px;line-height:1.8}
.danger-button{background:#b44949;border-color:#b44949;color:#fff}
.delete-preview{font-size:14px;color:var(--muted);padding:12px 14px;border-left:2px solid var(--line);background:var(--soft);white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;overflow:auto;margin:18px 0}
@media(max-width:620px){.nav{gap:10px}.theme-toggle{width:30px;height:30px}.wordmark{font-size:22px}.guestbook{padding:29px 0 32px}.guestbook-form{padding:18px 16px}.guestbook-intro{font-size:14px}.compose-hint{font-size:11px}.primary-button{padding:8px 14px}.message{gap:10px;padding:18px 0}.message-content{font-size:14px}.admin-form,.delete-confirm{padding:23px}.guestbook .section-heading h2{font-size:22px}}
@media(max-width:620px){.guestbook-page main{padding-top:27px}.guestbook-page .guestbook{padding-top:20px}.guestbook-page .section-heading h1{font-size:29px}}

@media(max-width:620px){.guestbook-form input,.guestbook-form textarea,.admin-form input{font-size:16px}}
