*{box-sizing:border-box}body{margin:0;background:#fffaf5;color:#3b302b;font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic",YuGothic,Meiryo,sans-serif}.wrap{width:min(92%,760px);margin:30px auto;padding:0}.brand{text-align:center;margin-bottom:18px}.brand a{color:#7c5b36;text-decoration:none;font-weight:700}.card{background:#fff;border:1px solid #e7d9c9;border-top:5px solid #b18a56;border-radius:14px;padding:clamp(20px,4vw,36px);box-shadow:0 8px 28px rgba(91,60,31,.08)}h1{font-size:clamp(1.45rem,4.5vw,2rem);text-align:center;color:#6d4a2e;margin:0 0 10px}.teacher{text-align:center;font-weight:700;color:#9a6f3c;margin-bottom:24px}.field{margin:0 0 22px}.field label{display:block;font-weight:700;margin-bottom:8px}.required,.optional{font-size:.75rem;padding:3px 7px;border-radius:999px;margin-left:7px}.required{background:#b34b4b;color:#fff}.optional{background:#eee5dc;color:#6c5a4b}input[type=text],input[type=email],textarea,input[type=file]{width:100%;font:inherit}input[type=text],input[type=email],textarea{border:1px solid #cab8a5;border-radius:9px;padding:13px;background:#fff}textarea{min-height:210px;resize:vertical}.error{color:#b00020;font-size:.9rem;margin-top:6px}.notice{background:#fff8de;border:1px solid #ead99a;padding:12px;border-radius:8px;margin-bottom:18px}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}.btn{appearance:none;border:0;border-radius:9px;background:#805b36;color:#fff;font-size:1rem;font-weight:700;padding:14px 24px;cursor:pointer;text-decoration:none;display:inline-block}.btn.secondary{background:#756d67}.confirm-row{border-bottom:1px solid #eee0d2;padding:15px 0}.confirm-row b{display:block;margin-bottom:5px}.receipt{text-align:center;background:#f8f0e8;border:1px solid #dec9b5;padding:18px;border-radius:10px;font-size:1.35rem;font-weight:800;letter-spacing:.04em}.small{font-size:.84rem;color:#6f665f}@media(max-width:520px){.wrap{margin:15px auto}.card{padding:20px 16px}.actions{display:grid}.btn{width:100%;text-align:center}}

/* 会話スレッド */
.thread-wrap{width:min(94%,860px)}.thread-list{display:flex;flex-direction:column;gap:14px;margin:40px 0 24px}.bubble{max-width:84%;padding:14px 16px;border-radius:14px;line-height:1.75;overflow-wrap:anywhere}.bubble.customer{align-self:flex-start;background:#eef6ff;border:1px solid #c9dff5}.bubble.admin{align-self:flex-end;background:#fff3d9;border:1px solid #e3c78f}.bubble-meta{font-size:.78rem;color:#75685f;margin-bottom:6px}.attachment-link{display:inline-block;margin-top:9px}.thread-form{border-top:1px solid #e7d9c9;padding-top:22px}.error-box{background:#ffe5e5;border-color:#e7aaaa}@media(max-width:520px){.bubble{max-width:94%}}

/* 送信取消済みメッセージ */
.bubble.is-deleted{background:#f2f0ee;border-style:dashed;color:#716a65}
.deleted-message{font-style:italic;color:#716a65}

/* お客様メッセージ送信取消 */
.bubble.customer.is-cancellable{cursor:context-menu;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.message-action-menu{position:fixed;z-index:9999;min-width:150px;padding:6px;background:#fff;border:1px solid #d7c8b8;border-radius:10px;box-shadow:0 8px 24px rgba(48,34,24,.2)}
.message-action-menu[hidden]{display:none!important}
.message-action-menu button{display:block;width:100%;border:0;background:#fff;color:#a12828;font:inherit;font-weight:700;text-align:left;padding:10px 12px;border-radius:7px;cursor:pointer}
.message-action-menu button:hover,.message-action-menu button:focus{background:#fff0f0;outline:none}
/* R2 message actions */
.bubble-meta{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.message-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.copy-message,.cancel-btn{border:0;background:transparent;padding:0;color:#66584e;font:inherit;font-size:.76rem;text-decoration:underline;cursor:pointer}.cancel-btn{color:#a12828}.inline-form{display:inline;margin:0}.message-body a{word-break:break-all}@media(max-width:520px){.bubble-meta{display:block}.message-tools{margin-top:5px}}


/* R2.1: message actions are hidden until long press / right click */
.bubble.has-message-actions{position:relative;-webkit-touch-callout:none;touch-action:pan-y}
.bubble.has-message-actions .message-tools{display:none;position:absolute;z-index:30;top:8px;right:8px;gap:8px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #d7c8b8;border-radius:9px;padding:7px 9px;box-shadow:0 6px 20px rgba(48,34,24,.16)}
.bubble.has-message-actions.actions-visible .message-tools{display:flex}
.bubble.has-message-actions.actions-visible{outline:2px solid rgba(128,91,54,.14);outline-offset:2px}
@media(max-width:520px){.bubble.has-message-actions .message-tools{top:7px;right:7px;max-width:calc(100% - 14px)}}

/* R2.2: force-hide customer message actions until explicitly opened */
.message-tools[hidden]{display:none!important}

/* R2.4: mail delivery warning */
.mail-warning{background:#fdeaea;border:2px solid #e57373;color:#8a1f1f}
.mail-warning strong{color:#8a1f1f}

/* R2.5: spacing at requested thread positions */
.thread-form form + .mail-warning{margin-top:30px}


/* R2.6: read receipts */
.read-status{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:800;line-height:1.5;vertical-align:middle}.read-status.is-read{background:#e6f3eb;color:#2f6b46}.read-status.is-unread{background:#f0ece8;color:#75685f}

/* R2.7: V1-style sent/read metadata */
.message-sent-meta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.message-sent-meta strong{font-size:.94rem;color:#3f342e}
.message-sent-meta time{font-size:.74rem;color:#75685f;font-weight:400}
.message-delivery-meta{margin-top:10px;font-size:.76rem;line-height:1.65;color:#75685f}
.message-delivery-meta .read-line.is-read strong{color:#2f6b46}
.message-delivery-meta .read-line.is-unread strong{color:#75685f}
