.chat-panel { grid-template-rows: auto minmax(0, 1fr) auto auto; }
.attachment-card { margin-top: 9px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 12px; border: 1px solid #d8dde4; border-radius: 10px; background: rgba(255,255,255,.8); }
.attachment-card > div { min-width: 0; display: grid; gap: 3px; }
.attachment-card strong { font-size: 12px; }
.attachment-card span { overflow-wrap: anywhere; }
.attachment-card small { color: var(--muted); }
.attachment-card a { flex: 0 0 auto; text-decoration: none; padding: 6px 10px; border-radius: 7px; background: var(--ink); color: #fff; font-size: 12px; }
.attachment-pending { opacity: .78; }
.attachment-failed { border-color: #fecaca; background: #fff1f2; }

.upload-link-panel { padding: 0 16px 12px; background: #fff; }
.upload-link-panel details { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--soft); }
.upload-link-panel summary { cursor: pointer; font-weight: 700; }
.upload-link-panel p { margin: 8px 0 12px; }
.upload-link-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: end; }
.upload-link-form label { display: grid; gap: 6px; color: #4b5563; font-size: 12px; }
.upload-link-form select, .upload-link-form input { width: 100%; height: 40px; border: 1px solid #cfd4dc; border-radius: 8px; padding: 0 10px; background: #fff; }
.generated-link { margin: 12px 0; padding: 12px; border: 1px solid #b7dfc2; border-radius: 9px; background: #effaf2; }
.copy-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; margin-top: 8px; }
.copy-row input { min-width: 0; height: 40px; direction: ltr; text-align: left; border: 1px solid #b9c2cc; border-radius: 8px; padding: 0 10px; }
.active-upload-links { display: grid; gap: 8px; margin-top: 14px; }
.active-link-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.active-link-row form { margin: 0; }
.danger-link { color: var(--danger); background: transparent; border-color: #f1b9b5; }

.customer-upload-card { width: min(620px, 100%); margin: 48px auto; padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 35px rgba(35,31,32,.07); }
.upload-intro h1, .upload-state h1 { margin-top: 0; }
.upload-intro p { color: var(--muted); line-height: 1.7; }
.customer-upload-form { display: grid; gap: 10px; margin-top: 22px; }
.customer-upload-form label { margin-top: 8px; font-weight: 700; }
.customer-upload-form input[type="file"] { width: 100%; padding: 16px; border: 1px dashed #aeb5bf; border-radius: 10px; background: var(--soft); }
.customer-upload-form textarea { width: 100%; resize: vertical; border: 1px solid #cfd4dc; border-radius: 9px; padding: 12px; }
.customer-upload-form small { color: var(--muted); line-height: 1.7; }
.upload-security-note { margin-top: 18px; padding: 12px; border-radius: 9px; background: #f4f5f6; color: var(--muted); font-size: 12px; line-height: 1.7; }
.upload-state { text-align: center; padding: 30px 10px; }
.upload-state-success h1 { color: var(--success); }
.upload-state-error h1 { color: var(--danger); }
.upload-again-link { display: inline-block; margin-top: 12px; padding: 10px 14px; border-radius: 8px; background: var(--ink); color: #fff; text-decoration: none; }

@media (max-width: 760px) {
  .upload-link-form { grid-template-columns: 1fr; }
  .active-link-row { align-items: flex-start; flex-direction: column; }
  .customer-upload-card { margin: 18px auto; padding: 20px; }
  .attachment-card { align-items: flex-start; flex-direction: column; }
}
