/* Shared Collab fields and dialog surfaces. Loaded after Materialize. */
.ib-collab-page .hiddendiv.common { box-sizing: border-box; max-width: 100vw; }
.ib-collab-modal.modal { width: min(600px, calc(100% - 40px)); max-height: 86dvh; border-radius: 24px; background: #fff; color: #182238; box-shadow: 0 24px 80px #18223838; overflow: auto; }
.ib-collab-modal.modal .modal-content { padding: 28px; }
.ib-collab-modal h2 { margin: 6px 0 10px; font-size: 1.65rem; font-weight: 750; line-height: 1.2; }
.ib-collab-modal p { float: none; width: auto; }
.ib-collab-eyebrow { color: #6652b4; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ib-collab-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 22px 0 0; }
.ib-collab-label { position: static; color: #263249; font-size: .94rem; font-weight: 650; }
.ib-collab-label span { color: #68748a; font-weight: 400; }
textarea.ib-collab-textarea { box-sizing: border-box; display: block; width: 100%; min-height: 128px; height: auto; max-height: 40dvh; margin: 0; padding: 14px 16px; border: 1px solid #d9dfe9; border-radius: 14px; background: #fafbfe; color: #182238; font: inherit; font-size: 16px; line-height: 1.55; resize: vertical; transition: border-color .15s, box-shadow .15s; }
textarea.ib-collab-textarea:focus { outline: none; border-color: #7860ce; box-shadow: 0 0 0 4px #7860ce20; background: #fff; }
textarea.ib-collab-textarea[aria-invalid="true"] { border-color: #b8344b; box-shadow: 0 0 0 3px #b8344b15; }
.ib-collab-hint { color: #657188; font-size: .87rem; line-height: 1.55; margin: 0; }
.ib-collab-error, .ib-collab-feedback.is-error { color: #a32940; font-size: .88rem; line-height: 1.5; }
.ib-collab-feedback, .ib-collab-context { padding: 12px 14px; border-radius: 12px; background: #f3f0fb; font-size: .9rem; }
.ib-collab-feedback.is-success { background: #eaf7ef; color: #21643b; }
.ib-collab-modal .ib-collab-footer { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; height: auto; padding: 18px 28px; border-top: 1px solid #edf0f5; background: #fff; }
.ib-collab-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 10px 18px; border: 1px solid transparent; border-radius: 12px; background: #6950bb; color: #fff; font: inherit; font-size: .9rem; font-weight: 650; line-height: 1.4; cursor: pointer; text-decoration: none; }
.ib-collab-button:hover, .ib-collab-button:focus { background: #58409f; color: #fff; }
.ib-collab-button--quiet { background: #f3f5f9; border-color: #e7eaf0; color: #39465d; }
.ib-collab-button--quiet:hover, .ib-collab-button--quiet:focus { background: #e7eaf3; color: #263249; }
.ib-collab-button:disabled { opacity: .55; cursor: default; }
.ib-collab-modal button:focus-visible, .ib-collab-button:focus-visible, .ib-collab-dropzone:focus-visible { outline: 3px solid #8871d7; outline-offset: 3px; }
.ib-collab-button.is-loading::before { content: ''; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ib-collab-spin .8s linear infinite; }
@keyframes ib-collab-spin { to { transform: rotate(360deg); } }
.ib-collab-rating { display: flex; gap: 6px; }
.ib-collab-rating .ib-review-star { width: 46px; height: 46px; padding: 0; border: 1px solid #e5e8f0; border-radius: 12px; background: #f7f8fc; color: #8993a7; font-size: 29px; line-height: 1; cursor: pointer; }
.ib-collab-rating .ib-review-star.is-active, .ib-collab-rating .ib-review-star.is-hover { background: #fff5dc; border-color: #ebc677; color: #a36b09; }
.ib-collab-rating:has(.is-hover) .ib-review-star:not(.is-hover) { background: #f7f8fc; border-color: #e5e8f0; color: #8993a7; }
.ib-collab-dropzone { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; min-height: 134px; padding: 18px; border: 1px dashed #b9afd9; border-radius: 16px; background: #faf8ff; color: #554478; cursor: pointer; font-size: .9rem; text-align: center; }
.ib-collab-dropzone.is-active, .ib-collab-dropzone:hover { background: #f0ebfc; border-color: #7860ce; }
.ib-collab-dropzone__icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: #ede6fc; font-size: 23px; }
.ib-collab-queue { display: flex; flex-direction: column; gap: 10px; }
.ib-collab-queue-item { display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 4px 12px; padding: 12px; border: 1px solid #e2e6ef; border-radius: 14px; background: #fafbfe; min-width: 0; }
.ib-collab-queue-item__name { grid-column: 1; grid-row: 1; font-weight: 650; overflow-wrap: anywhere; }
.ib-collab-queue-item__meta { grid-column: 1; grid-row: 2; }
.ib-collab-queue-item__status { grid-column: 1; grid-row: 3; }
.ib-collab-queue-item > progress { grid-column: 1; grid-row: 4; }
.ib-collab-queue-item__meta, .ib-collab-queue-item__status { color: #657188; font-size: .8rem; overflow-wrap: anywhere; }
.ib-collab-queue-item button { grid-column: 2; grid-row: 1 / 5; align-self: center; width: 40px; height: 44px; padding: 0; border: 0; border-radius: 10px; background: #eef0f7; color: #536079; font-size: 22px; cursor: pointer; }
.ib-collab-queue-item progress, .ib-collab-progress progress { width: 100%; height: 5px; accent-color: #7860ce; }
.ib-collab-queue-item[data-state="uploading"], .ib-collab-queue-item[data-state="processing"] { border-color: #b6a4e2; }
.ib-collab-queue-item[data-state="ready"] { border-color: #97cbaa; background: #f5fbf7; }
.ib-collab-queue-item[data-state="error"] { border-color: #d99aaa; background: #fff8fa; }
.ib-collab-queue-item[data-state="error"] .ib-collab-queue-item__status { color: #a32940; }
.ib-collab-modal [hidden], .ib-briefing-page [hidden] { display: none; }
.ib-briefing-page { max-width: 1080px; margin: 32px auto 48px; padding: 0 24px; }
.ib-briefing-header { margin-bottom: 24px; }
.ib-briefing-header__title { margin: 8px 0 10px; font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 750; color: #182238; }
.ib-briefing-header__copy { color: #657188; line-height: 1.6; }
.ib-briefing-card { display: grid; grid-template-columns: 1.1fr 1fr; gap: 28px; padding: 28px; border: 1px solid #e5e8ef; border-radius: 22px; background: #fff; box-shadow: 0 8px 30px #18223808; }
.ib-briefing-card > * { min-width: 0; }
.ib-briefing-card .ib-collab-field { margin-top: 0; }
.ib-briefing-card textarea { min-height: 280px; }
.ib-briefing-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.ib-briefing-preview { padding: 20px; border-radius: 16px; background: #f7f8fc; }
.ib-briefing-preview__title { margin: 0 0 16px; color: #39465d; font-size: .95rem; font-weight: 700; }
.ib-briefing-preview__body { color: #39465d; overflow-wrap: anywhere; line-height: 1.65; }
.ib-briefing-preview__body.is-plain { white-space: pre-wrap; }
.ib-briefing-empty { display: block; padding: 32px 4px; color: #7b8599; font-size: .95rem; }
@media (max-width: 600px) {
    /* Materialize animates top inline; anchor the sheet to the viewport bottom. */
    .ib-collab-modal.modal { top: auto !important; bottom: 0; width: 100%; max-height: calc(100dvh - env(safe-area-inset-top) - 16px); margin: 0; border-radius: 22px 22px 0 0; }
    .ib-collab-modal.modal .modal-content { padding: 24px 20px; }
    .ib-collab-modal .ib-collab-footer { padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); }
    .ib-briefing-page { padding: 0 16px; margin-top: 24px; }
    .ib-briefing-card { grid-template-columns: 1fr; padding: 20px; gap: 24px; }
}
@media (prefers-reduced-motion: reduce) { .ib-collab-button.is-loading::before { animation: none; } }
.ib-collab-queue-item .ib-collab-queue-item__retry { grid-column: 1/-1; grid-row: 5; width: auto; min-width: 0; min-height: 40px; justify-self: start; padding: 8px 14px; border-radius: 10px; font-size: 13px; line-height: 1.3; white-space: normal; }
