.shared-lock main { visibility: hidden; }
.shared-bar { padding: 14px 20px; margin-top: 24px; display: flex; align-items: center; gap: 15px; flex-wrap: wrap; font-size: 12px; }
#sync-status { color: #839577; margin-left: auto; font-size: 11px; }
.shared-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.shared-card { padding: 24px; margin-top: 24px; }
.shared-grid .shared-card { margin-top: 0; }
.visit-summary { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; background: #f3f4e9; border-radius: 12px; padding: 8px 12px; margin: 14px 0; }
.feed { max-height: 350px; overflow-y: auto; margin-top: 16px; overscroll-behavior: contain; }
.shared-entry { padding: 12px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.shared-entry p { font-size: 12px; white-space: pre-wrap; }
textarea { width: 100%; min-height: 90px; border: 1px solid #dce1d3; border-radius: 10px; background: #fffefa; padding: 12px; font: inherit; color: var(--ink); margin: 12px 0; resize: vertical; }
#letter-body { min-height: 160px; }
.letters-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; max-height: 600px; overflow-y: auto; }
.letters-grid .shared-entry { padding: 18px; background: #fcf0f1; border-radius: 12px; border: 1px solid #f1dce1; }
.letter-body { white-space: pre-wrap; color: #9f7788; line-height: 1.9; }
#letter-editor { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 20px; }
#letter-editor[hidden] { display: none; }
#letter-editor summary { cursor: pointer; font-size: 13px; color: #a7798d; }
.template-row { display: flex; align-items: center; gap: 8px; padding: 12px 0; flex-wrap: wrap; font-size: 12px; }
.template-row span { flex: 1; }.template-row button { font-size: 11px; padding: 6px 10px; }
.shared-card form label { display: block; margin: 16px 0; font-size: 12px; }
#login-error { color: #ad7a75; font-size: 12px; }
.shared-lock #shared-login { display: block; }
/* 留言不依赖宠物是否被拘留；照顾和冒险仍需先抱抱赎回。 */
.detained #message-form button,.detained #letter-form button,.detained .template-row button { display: inline-block !important; }
.detained #retry-sync { display: inline-block !important; }
#retry-sync[hidden] { display: none !important; }
@media(max-width:700px) { .shared-grid,.letters-grid { grid-template-columns: 1fr; } .shared-bar { padding: 14px; } #sync-status { margin-left: 0; } .shared-card { padding: 18px; } }
