.content-page .guestbook-main { max-width: 1180px; padding: 4rem 30px 5rem; }
.guestbook-main h1 { font-size: clamp(2.4rem, 5vw, 4rem); margin: 0 0 1.5rem; }
.gb-layout > section { padding: 0; }
.gb-layout > .gb-compose { padding: 1.5rem; }
.gb-intro { max-width: 42rem; font-size: 1.15rem; margin-bottom: 2.5rem; }
.gb-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.gb-compose, .gb-entry, .gb-login { padding: 1.5rem; }
.gb-entry { margin: 1rem 0; }
.gb-entry h3 { margin: 0 0 .25rem; }
.gb-entry time, .gb-help, label span { color: #536159; font-size: .9rem; }
.gb-message { white-space: pre-wrap; overflow-wrap: anywhere; }
.gb-compose label, .gb-login label { display: block; font-weight: 600; margin: 1.2rem 0 .4rem; }
.gb-compose input:not([type=checkbox]), .gb-compose textarea, .gb-login input[type=password] { width: 100%; box-sizing: border-box; border: 1px solid #7e8c83; background: white; color: #20392d; border-radius: .5rem; padding: .75rem; font: inherit; }
.gb-compose textarea { resize: vertical; }
.gb-compose .gb-consent { display: flex; align-items: flex-start; gap: .6rem; font-weight: 400; margin-bottom: 1.5rem; }
.gb-consent input { margin-top: .25rem; min-width: 1.15rem; min-height: 1.15rem; }
.gb-notice, .gb-error { border-radius: .5rem; padding: 1rem; border: 1px solid #5b7a66; background: #eaf2e9; }
.gb-error { background: #fff0ec; border-color: #a2432d; color: #782e1d; }
.gb-trap { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gb-filters, .gb-pagination, .gb-actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin: 1.5rem 0; }
.gb-filters a { padding: .6rem .9rem; border: 1px solid #7e8c83; border-radius: .4rem; }
.gb-filters [aria-current=page] { background: #244b3b; color: white; }
.gb-login { max-width: 32rem; }
.gb-login button { margin-top: 1rem; }
.gb-actions .btn { font: inherit; cursor: pointer; }
@media (max-width: 760px) { .gb-layout { grid-template-columns: minmax(0, 1fr); } .content-page .guestbook-main { padding: 2rem 20px 3rem; } .gb-compose { grid-row: 1; } .gb-actions { align-items: stretch; flex-direction: column; } }
