.communication-workspace { --communication-text:var(--ictus-blue,#002a5c); --communication-muted:#536478; --communication-surface:var(--ictus-surface,#fff); --communication-soft:var(--ictus-screen,#f3f6f9); --communication-border:var(--ictus-border,#d8dee6); }
.communication-workspace .page-content { padding-top:18px; }
.communication-workspace .communication-shell { overflow:visible; }
.communication-workspace .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.communication-menu { background:transparent; border:0; color:inherit; padding:0; }
.communication-breadcrumb { display:flex; align-items:center; gap:8px; font-size:.78rem; margin-top:6px; color:var(--communication-muted); }
.communication-breadcrumb i { font-size:.6rem; }
.communication-content { padding:28px; color:var(--communication-text); }
.communication-content h4,.communication-content h5 { color:var(--communication-text); }
.communication-state { display:flex; justify-content:center; align-items:center; gap:14px; padding:55px 20px; color:var(--communication-muted); }
.communication-feedback { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.communication-hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:30px; align-items:center; padding:32px; border:1px solid var(--communication-border); border-radius:14px; background:linear-gradient(120deg,var(--communication-soft),var(--communication-surface)); }
.communication-eyebrow { display:block; font-size:.67rem; font-weight:700; letter-spacing:.07em; color:var(--communication-muted); margin-bottom:9px; }
.communication-hero h4 { font-size:clamp(1.4rem,2.2vw,2.15rem); line-height:1.35; margin-bottom:16px; }
.communication-content p { color:var(--communication-muted); font-size:.85rem; line-height:1.7; margin-bottom:0; }
.communication-hero p { max-width:580px; margin-bottom:22px; }
.communication-hero__art { display:grid; justify-items:center; gap:7px; padding:30px; color:var(--communication-text); }
.communication-hero__art > i { font-size:4.6rem; margin-bottom:12px; }
.communication-hero__art > span { font-size:1.1rem; font-weight:700; }
.communication-hero__art > small { font-size:.77rem; color:var(--communication-muted); }
.communication-badge { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--communication-border); border-radius:24px; padding:6px 12px; font-size:.73rem; color:var(--communication-muted); }
.communication-notice { display:flex; align-items:flex-start; gap:12px; margin:24px 0; font-size:.85rem; }
.communication-notice > i { flex-shrink:0; margin-top:2px; font-size:1.2rem; }
.communication-notice p { margin-top:5px; }
.communication-mode { display:flex; align-items:center; flex-wrap:wrap; gap:18px; padding:24px; border:1px solid var(--communication-border); border-radius:12px; }
.communication-mode__icon { display:grid; place-items:center; width:48px; height:48px; border-radius:12px; background:var(--communication-soft); font-size:1.4rem; flex-shrink:0; }
.communication-mode > div { flex:1 1 250px; min-width:0; }
.communication-mode h5 { font-size:1.05rem; margin:0 0 5px; }
.communication-mode .communication-eyebrow { margin-bottom:4px; }
.communication-section-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:24px; }
.communication-section-heading h4 { font-size:1.3rem; margin-bottom:8px; }
.communication-details { margin:0; }
.communication-details > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:20px; padding:20px 0; border-bottom:1px solid var(--communication-border); font-size:.85rem; }
.communication-details dd { margin:0; color:var(--communication-muted); }
.communication-workspace :is(a,button):focus-visible { outline:3px solid var(--communication-text); outline-offset:3px; }
body.theme-dark .communication-workspace { --communication-text:#edf4ff; --communication-muted:#bccbdd; --communication-surface:#1e2b3d; --communication-soft:#172334; --communication-border:#455b75; }
.communication-workspace { color-scheme:light; }
body.theme-dark .communication-workspace { color-scheme:dark; }
body.theme-dark .communication-workspace .form-select { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23edf4ff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
body.theme-dark .communication-workspace .communication-content a:not(.btn):not(.communication-dashboard-metric) { color:#9be3f3; }
body.theme-dark .communication-workspace .communication-content a:not(.btn):not(.communication-dashboard-metric):hover { color:#e0f6ff; }
body.theme-dark .communication-workspace .btn-link { color:#9be3f3; }
body.theme-dark .communication-workspace .btn-link:hover { color:#e0f6ff; }
body.theme-dark .communication-workspace .btn-outline-primary { color:#9be3f3; border-color:#668dad; }
body.theme-dark .communication-workspace .btn-outline-secondary { color:#dae6f4; border-color:#71869f; }
body.theme-dark .communication-workspace :is(.btn-outline-primary,.btn-outline-secondary):hover { color:#fff; background:#253e5b; }
body.theme-dark .communication-workspace .btn-outline-danger { color:#ffb5b5; border-color:#945b68; }
.communication-management-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.communication-management-card { display:flex; gap:16px; align-items:center; padding:24px; color:var(--communication-text); border:1px solid var(--communication-border); border-radius:12px; }
.communication-management-card:hover { background:var(--communication-soft); color:var(--communication-text); }
.communication-management-card > div { flex:1; min-width:0; }
.communication-workspace .communication-management-card h5 { font-size:.95rem; margin:0 0 7px; }
.communication-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.communication-toolbar { display:flex; gap:16px; align-items:center; margin:22px 0; padding:0; }
.communication-toolbar .entity-list__search { margin-left:auto; max-width:480px; }
.communication-toolbar .form-select { min-width:180px; }
.communication-record { display:flex; align-items:center; gap:16px; padding:20px 0; border-bottom:1px solid var(--communication-border); }
.communication-record:first-child { border-top:1px solid var(--communication-border); }
.communication-record__copy { flex:1; min-width:0; overflow-wrap:anywhere; }
.communication-record__copy strong { font-size:.9rem; }
.communication-record__copy small { color:var(--communication-muted); font-size:.75rem; }
.communication-avatar { display:grid; place-items:center; height:42px; width:42px; border:1px solid var(--communication-border); border-radius:50%; overflow:hidden; font-size:.75rem; flex-shrink:0; }
.communication-avatar img { height:100%; width:100%; object-fit:cover; }
.communication-color { display:block; width:12px; height:36px; border:1px solid var(--communication-border); border-radius:8px; flex-shrink:0; }
.communication-badge--inactive { border-style:dashed; }
.communication-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--communication-muted); font-size:.78rem; margin:20px 0 0; }
.communication-pagination > div { display:flex; gap:8px; }
.communication-empty { text-align:center; padding:50px 15px; color:var(--communication-muted); }
.communication-empty > i { display:block; font-size:2.3rem; margin-bottom:14px; }
.communication-empty h5 { font-size:1.05rem; }
.communication-form-block { border:1px solid var(--communication-border); padding:24px; border-radius:12px; margin-bottom:22px; }
.communication-form-block > h5 { font-size:1rem; margin-bottom:12px; }
.communication-form-block > p { margin-bottom:18px; }
.communication-edit-form label { display:block; font-size:.82rem; color:var(--communication-text); font-weight:600; margin-bottom:8px; margin-top:12px; }
.communication-edit-form .form-group { margin-bottom:14px; }
.communication-edit-form .form-control,.communication-edit-form .form-select { min-width:0; }
.communication-edit-form .communication-check { display:flex; align-items:center; gap:10px; font-weight:400; }
.communication-edit-form .communication-check input { flex-shrink:0; margin:0; }
.communication-required,.communication-edit-form .communication-help { color:var(--communication-muted); font-size:.77rem; line-height:1.7; margin-top:10px; }
.communication-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin:16px 0; }
.communication-checklist label { display:flex; gap:10px; align-items:center; margin:0; font-weight:400; }
.communication-checklist input { margin:0; flex-shrink:0; }
.communication-selected { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:12px 0; font-size:.82rem; color:var(--communication-text); }
.communication-picker { border:1px solid var(--communication-border); border-radius:10px; padding:14px; margin:18px 0; }
.communication-picker__item { display:flex; flex-direction:column; text-align:left; gap:5px; width:100%; padding:14px; background:transparent; border:0; border-bottom:1px solid var(--communication-border); color:var(--communication-text); font-size:.83rem; overflow-wrap:anywhere; }
.communication-picker__item:hover { background:var(--communication-soft); }
.communication-picker__item small { color:var(--communication-muted); }
.communication-question,.communication-round { background:var(--communication-soft); padding:20px; border:1px solid var(--communication-border); border-radius:10px; margin:18px 0; }
.communication-question .communication-actions { margin-top:15px; }
.communication-round > .communication-section-heading > .form-group { flex:1 1 220px; margin:0; }
.communication-step { padding:18px 0; border-top:1px solid var(--communication-border); margin-top:15px; }
.communication-step .communication-actions { margin:12px 0; }
.communication-chips { display:flex; gap:8px; flex-wrap:wrap; margin:15px 0; }
.communication-chips > span { display:flex; align-items:center; gap:6px; padding:7px 12px; border:1px solid var(--communication-border); border-radius:20px; font-size:.78rem; }
.communication-chips button { border:0; background:transparent; color:var(--communication-text); }
.communication-form-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; border-top:1px solid var(--communication-border); padding-top:22px; margin-top:22px; }
.communication-interval { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.communication-interval > div { flex:1 1 100px; min-width:0; }
.communication-interval .btn { margin-bottom:0; }
.communication-message-preview { padding:18px; border:1px solid var(--communication-border); border-radius:10px; margin-top:18px; font-size:.82rem; }
.communication-message-preview p { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:10px; }
.communication-view-switch { display:flex; border:1px solid var(--communication-border); border-radius:9px; overflow:hidden; }
.communication-view-switch button { border:0; background:transparent; color:var(--communication-muted); padding:10px 17px; font-size:.83rem; display:flex; gap:8px; align-items:center; }
.communication-view-switch button.is-active { color:var(--communication-text); background:var(--communication-soft); font-weight:700; box-shadow:inset 0 -3px #2888aa; }
/* Demands use the same compact typography and surfaces as the Visitor Central. */
.communication-demands { --demands-heading:var(--ictus-graphite,#293544); --demands-alert:#b43540; padding:1.25rem; }
.communication-demands-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.communication-demands-eyebrow { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.communication-demands .communication-demands-heading h4 { color:var(--demands-heading); font-size:1.05rem; font-weight:900; letter-spacing:0; margin:.15rem 0 0; }
.communication-demands-heading-actions { display:flex; align-items:center; gap:.6rem; }
.communication-demands .communication-view-switch { border-radius:6px; background:var(--communication-surface); }
.communication-demands .communication-view-switch button { padding:.45rem .9rem; font-size:.75rem; min-height:32px; }
.communication-demand-filters { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; padding:.95rem; margin-bottom:.8rem; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:8px; }
.communication-demand-search { flex:1 1 300px; min-width:0; }
.communication-demand-search .input-group-text { background:var(--communication-surface); color:var(--communication-muted); font-size:.8rem; }
.communication-demand-search .btn { min-width:65px; }
.communication-demand-order { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.communication-demand-order label { color:var(--communication-muted); font-size:.72rem; font-weight:700; margin:0; }
.communication-demand-order .form-select { width:auto; min-width:0; font-size:.75rem; }
.communication-demand-filter-details { flex:1 0 100%; border-top:1px solid var(--communication-border); padding-top:.75rem; font-size:.75rem; }
.communication-demand-filter-details>summary { color:var(--communication-text); cursor:pointer; width:fit-content; }
.communication-demand-filter-details summary:focus-visible,.communication-demand-people summary:focus-visible { outline:3px solid var(--communication-text); outline-offset:3px; border-radius:4px; }
.communication-demand-filter-badge { display:inline-grid; place-items:center; margin-left:.25rem; padding:.05rem .35rem; border-radius:4px; background:var(--communication-surface); font-size:.7rem; font-weight:900; }
.communication-demand-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem 1rem; padding:.8rem 0 0; }
.communication-demand-filter-grid>div { min-width:0; }
.communication-demand-filter-grid.communication-edit-form label { margin:0 0 .3rem; font-size:.72rem; font-weight:700; color:var(--communication-muted); }
.communication-demand-filter-grid>.communication-actions { grid-column:1/-1; border-top:1px solid var(--communication-border); padding-top:.8rem; }
.communication-demand-active-filters { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin-bottom:.9rem; }
.communication-demand-active-filters>span { color:var(--communication-muted); font-size:.72rem; margin-right:.25rem; }
.communication-demand-active-filters button { display:inline-flex; align-items:center; gap:.35rem; max-width:100%; padding:.3rem .55rem; border:1px solid var(--communication-border); border-radius:6px; color:var(--communication-text); background:var(--communication-soft); font-size:.72rem; text-align:left; overflow-wrap:anywhere; }
.communication-demand-active-filters button i { flex-shrink:0; font-size:.85rem; }
.communication-demand-active-filters button:hover { border-color:var(--communication-text); }
.communication-demand-active-filters .communication-demand-clear { background:none; border-color:transparent; text-decoration:underline; }
.communication-demand-summary { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:.5rem; margin-bottom:.8rem; }
.communication-demands .communication-demand-count { color:var(--communication-text); font-size:.72rem!important; margin:0; }
.communication-demand-count>span { color:var(--communication-muted); }
.communication-demand-scroll-hint { color:var(--communication-muted); font-size:.7rem; }
.communication-demand-scroll-hint i { margin-right:.25rem; }
.communication-demand-groups { min-width:0; outline-offset:4px; }
.communication-demand-groups--board { display:flex; gap:.75rem; overflow-x:auto; align-items:flex-start; padding:0 0 .9rem; scrollbar-width:thin; scrollbar-color:var(--communication-border) transparent; scroll-snap-type:x proximity; }
.communication-demand-group { min-width:0; --phase-accent:#64748b; }
.communication-demand-group[data-phase=production] { --phase-accent:#2986ad; }
.communication-demand-group[data-phase=review] { --phase-accent:#aa7840; }
.communication-demand-group[data-phase=approval] { --phase-accent:#8664aa; }
.communication-demand-group[data-phase=delivery] { --phase-accent:#258770; }
.communication-demand-groups--board>.communication-demand-group { flex:1 0 250px; background:var(--communication-soft); padding:.75rem; border:1px solid var(--communication-border); border-radius:8px; min-height:300px; scroll-snap-align:start; }
.communication-demand-group-heading { display:flex; gap:.5rem; align-items:center; justify-content:space-between; margin:0 0 .75rem; }
.communication-workspace .communication-demand-group-heading h5 { display:flex; align-items:center; gap:.45rem; color:var(--demands-heading); margin:0; font-size:.82rem; font-weight:900; }
.communication-demand-group-heading h5::before { content:''; width:7px; height:7px; flex-shrink:0; background:var(--phase-accent); border-radius:50%; }
.communication-demand-group-heading>span { color:var(--communication-text); font-size:.7rem; font-weight:800; border:1px solid var(--communication-border); border-radius:5px; background:var(--communication-surface); padding:.1rem .45rem; }
.communication-demands .communication-demand-empty { color:var(--communication-muted); font-size:.72rem!important; padding:1.5rem .5rem; text-align:center; border:1px dashed var(--communication-border); border-radius:6px; }
.communication-demand-card { position:relative; background:var(--communication-surface); border:1px solid var(--communication-border); border-radius:8px; padding:.85rem; margin-bottom:.65rem; min-width:0; box-shadow:0 3px 10px rgba(31,45,61,.035); }
.communication-demand-card:last-of-type { margin-bottom:0; }
.communication-demand-card:hover { border-color:var(--phase-accent); }
.communication-demand-card.is-overdue { border-left:3px solid var(--demands-alert); }
.communication-demand-card-cover { height:6px; margin:-.85rem -.85rem .75rem; border-radius:7px 7px 0 0; }
.communication-demands .communication-demand-title { display:block; text-align:left; background:none; border:0; padding:0; font-size:.8rem; font-weight:800; line-height:1.5; color:var(--demands-heading); overflow-wrap:anywhere; }
.communication-demand-title:hover { text-decoration:underline; }
.communication-category-tag { display:inline-flex; align-items:center; gap:5px; max-width:100%; overflow-wrap:anywhere; padding:.2rem .4rem; margin:.45rem 0; font-size:.68rem; color:var(--communication-text); background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:5px; }
.communication-demand-card-deadline { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; color:var(--communication-muted); font-size:.72rem; margin-top:.8rem; }
.communication-deadline-tag { display:inline-block; color:#854300; background:#fff4d5; border:1px solid #c89638; padding:.15rem .35rem; border-radius:4px; font-size:.65rem; overflow-wrap:anywhere; }
.communication-deadline-tag--manual { color:var(--communication-muted); border-color:var(--communication-border); background:var(--communication-soft); }
.communication-demands .communication-deadline-tag.is-overdue { color:var(--demands-alert); background:var(--communication-soft); border-color:var(--demands-alert); }
.communication-demand-progress { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; font-size:.7rem; color:var(--communication-muted); margin-top:.8rem; }
.communication-demand-progress-track { flex:1; min-width:45px; height:6px; border-radius:6px; background:var(--communication-border); overflow:hidden; }
.communication-demand-progress-track>span { display:block; height:100%; background:#159b63; border-radius:6px; }
.communication-demands .communication-demand-progress>small { width:100%; font-size:.68rem; }
.communication-demand-people { margin-top:.65rem; position:relative; }
.communication-demand-people summary { display:flex; align-items:center; list-style:none; cursor:pointer; width:fit-content; }
.communication-demands .communication-demand-card .communication-demand-people>summary { display:flex; flex-direction:row; align-items:center; gap:0; }
.communication-demand-people summary::-webkit-details-marker { display:none; }
.communication-demand-avatar { display:grid; place-items:center; width:31px; height:31px; border:2px solid var(--communication-surface); border-radius:50%; background:var(--communication-soft); color:var(--communication-text); font-size:.61rem; font-weight:600; margin-right:-6px; overflow:hidden; flex-shrink:0; }
.communication-demand-avatar img { width:100%; height:100%; object-fit:cover; }
.communication-demand-avatar--more { margin-left:8px; font-size:.65rem; border:1px solid var(--communication-border); }
.communication-demand-people ul { position:relative; max-width:100%; margin:10px 0 0; background:var(--communication-surface); border:1px solid var(--communication-border); padding:12px 14px 12px 28px; border-radius:6px; color:var(--communication-text); font-size:.72rem; overflow-wrap:anywhere; }
.communication-demand-card-open { position:absolute; bottom:10px; right:10px; display:grid; place-items:center; width:27px; height:27px; border:1px solid var(--communication-border); border-radius:5px; color:var(--communication-muted); background:var(--communication-surface); }
.communication-demand-groups--board .communication-demand-progress { padding-right:29px; }
.communication-demand-group-pagination { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:space-between; font-size:.7rem; color:var(--communication-muted); margin-top:.75rem; }
.communication-demand-group-pagination>div { display:flex; flex-wrap:wrap; gap:.4rem; }
.communication-demand-groups--list>section { border:1px solid var(--communication-border); border-radius:8px; padding:.9rem; margin-bottom:.75rem; }
.communication-demand-list-labels,.communication-demand-card--list { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) 110px 140px minmax(80px,.8fr) minmax(0,1fr); gap:1rem; align-items:center; }
.communication-demand-list-labels { color:var(--communication-muted); font-size:.68rem; font-weight:800; padding:.65rem 32px .65rem .5rem; background:var(--communication-soft); border-radius:5px; }
.communication-demand-card--list { background:none; border:0; border-bottom:1px solid var(--communication-border); border-radius:0; padding:.85rem 32px .85rem .5rem; margin:0; box-shadow:none; }
.communication-demand-card--list.is-overdue { border-left:0; }
.communication-demand-card--list:last-of-type { border-bottom:0; }
.communication-demand-card--list>.communication-demand-card-title { grid-column:1; grid-row:1; }
.communication-demand-card--list>.communication-demand-card-unit { grid-column:2; grid-row:1; }
.communication-demand-card--list>:is(.communication-demand-people,.communication-demand-card-people-empty) { grid-column:3; grid-row:1; }
.communication-demand-card--list>.communication-demand-card-deadline { grid-column:4; grid-row:1; }
.communication-demand-card--list>.communication-demand-progress { grid-column:5; grid-row:1; }
.communication-demand-card--list>.communication-demand-card-condition { grid-column:6; grid-row:1; }
.communication-demand-card--list :is(.communication-demand-people,.communication-demand-progress,.communication-demand-card-deadline) { margin:0; }
.communication-demand-card--list .communication-demand-card-open { top:.85rem; bottom:auto; right:0; }
.communication-demand-card--list .communication-demand-avatar { width:26px; height:26px; margin-right:-7px; font-size:.55rem; }
.communication-demand-card-unit,.communication-demand-card-condition,.communication-demand-card-people-empty { font-size:.72rem; color:var(--communication-muted); overflow-wrap:anywhere; }
.communication-demands .communication-demand-card-condition small { display:inline-block; font-size:.65rem; margin:.3rem .25rem 0 0; padding:.15rem .4rem; border:1px solid var(--communication-border); border-radius:4px; color:var(--communication-text); background:var(--communication-soft); }
.communication-demand-groups--board .communication-demand-card-condition { padding-right:24px; margin-top:.5rem; }
.communication-demands-loading { display:flex; gap:.75rem; overflow:hidden; margin:1rem 0; }
.communication-demand-placeholder { flex:1 0 235px; padding:.8rem; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:8px; }
.communication-demand-placeholder>span { display:block; width:50%; height:13px; margin-bottom:1rem; background:var(--communication-border); border-radius:4px; }
.communication-demand-placeholder>div { height:115px; margin-top:.75rem; background:var(--communication-surface); border-radius:6px; animation:entity-list-pulse 1.35s ease-in-out infinite; }
body.theme-dark .communication-demands { --demands-heading:#edf4ff; --demands-alert:#ffb1ba; }
body.theme-dark .communication-demand-card { box-shadow:none; }

.communication-demand-dialog { width:calc(100vw - 70px); max-width:1500px; max-height:calc(100dvh - 48px); padding:0; border:1px solid var(--communication-border); border-radius:16px; background:var(--communication-surface); color:var(--communication-text); overflow:auto; }
.communication-demand-dialog::backdrop { background:rgba(8,19,35,.65); backdrop-filter:blur(3px); }
.communication-demand-dialog-tools { position:sticky; z-index:5; top:0; display:flex; gap:12px; align-items:center; justify-content:space-between; padding:17px 25px; background:var(--communication-soft); border-bottom:1px solid var(--communication-border); font-size:.77rem; color:var(--communication-text); }
.communication-demand-dialog .communication-content { padding:26px; }
.communication-demand-dialog .communication-section-heading h4 { font-size:1.45rem; }
.communication-demand-open-summary { padding:22px; border:1px solid var(--communication-border); border-radius:12px; margin-bottom:20px; }
.communication-demand-open-summary dl { display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:20px; margin:12px 0 0; }
.communication-demand-open-summary dt { font-size:.7rem; font-weight:400; margin-bottom:7px; }
.communication-demand-open-summary dd { font-size:.85rem; margin:0; }
.communication-demand-open-summary small { display:block; margin-top:4px; }
.communication-demand-open-summary :is(dt,dd,small,summary,li) { color:inherit; }
.communication-demand-open-summary p { font-size:.75rem; color:inherit; margin:18px 0 0; }
.communication-demand-open-summary summary { cursor:pointer; }
.communication-demand-open-summary .communication-demand-people { margin-top:0; }
.communication-demand-open-summary .communication-category-tag { color:#162c46; border-color:#8597a9; background:#f3f6fa; }
.communication-demand-open-tags { display:flex; gap:9px; flex-wrap:wrap; align-items:center; }
.communication-demand-detail-actions { margin:18px 0; }
.communication-demand-block-nav { display:flex; flex-wrap:wrap; gap:12px; margin:18px 0 24px; padding-bottom:12px; border-bottom:1px solid var(--communication-border); }
.communication-demand-block-nav button { display:flex; gap:8px; align-items:center; border:0; background:none; color:var(--communication-text); padding:9px 12px; font-size:.8rem; border-radius:7px; }
.communication-demand-block-nav button:hover { background:var(--communication-soft); }
.communication-demand-dialog .communication-request-detail-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); column-gap:24px; align-items:start; }
.communication-demand-dialog .communication-request-detail-layout > * { grid-column:1; min-width:0; }
.communication-demand-dialog .communication-request-detail-layout > .communication-section-heading { grid-column:1/-1; }
.communication-demand-dialog .communication-request-detail-layout > .communication-demand-history { grid-column:2; grid-row:2/span 8; }
.communication-demand-dialog [tabindex="-1"] { scroll-margin-top:90px; }
.communication-color-input { width:70px; height:40px; border:1px solid var(--communication-border); padding:4px; background:var(--communication-surface); border-radius:6px; }
.communication-demand-dialog .communication-request-detail-layout > .communication-detail-history-slot { grid-column:2; grid-row:2/span 8; }
.communication-demand-dialog .communication-request-detail-layout--collaboration { display:block; }
.communication-collaboration { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:0 22px; align-items:start; }
.communication-collaboration-feedback { grid-column:1/-1; }
.communication-collaboration-main { grid-column:1; min-width:0; }
.communication-collaboration-sidebar { grid-column:2; min-width:0; }
.communication-collaboration .communication-section-heading h5 { margin-bottom:7px; }
.communication-collaboration .communication-section-heading { margin-bottom:17px; }
.communication-briefing-audience { padding:20px 0; border-bottom:1px solid var(--communication-border); }
.communication-briefing-audience h6 { font-size:.92rem; color:var(--communication-text); margin-bottom:8px; }
.communication-audience-label { display:inline-flex; align-items:center; gap:6px; color:var(--communication-muted); font-size:.7rem; }
.communication-briefing-form,.communication-link-form { padding:20px; border:1px solid var(--communication-border); border-radius:10px; margin:20px 0; background:var(--communication-soft); }
.communication-rich-editor { border:1px solid var(--communication-border); border-radius:9px; overflow:hidden; background:var(--communication-surface); margin:14px 0; }
.communication-rich-toolbar { display:flex; gap:4px; flex-wrap:wrap; padding:8px; border-bottom:1px solid var(--communication-border); background:var(--communication-soft); }
.communication-rich-toolbar button { background:transparent; border:1px solid var(--communication-border); border-radius:5px; padding:5px 8px; color:var(--communication-text); font-size:.7rem; }
.communication-rich-toolbar button:hover { background:var(--communication-surface); }
.communication-rich-editable { padding:15px; min-height:180px; max-height:500px; overflow:auto; color:var(--communication-text); font-size:.86rem; line-height:1.75; outline-offset:-3px; overflow-wrap:anywhere; }
.communication-workspace .communication-rich-editable :is(h2,h3,h4),.communication-workspace .communication-rich-content :is(h2,h3,h4) { color:inherit; line-height:1.5; }
.communication-workspace .communication-rich-editable h2,.communication-workspace .communication-rich-content h2 { font-size:1.18rem; }
.communication-workspace .communication-rich-editable h3,.communication-workspace .communication-rich-content h3 { font-size:1.05rem; }
.communication-workspace .communication-rich-editable h4,.communication-workspace .communication-rich-content h4 { font-size:.95rem; }
.communication-workspace :is(.communication-rich-editable,.communication-rich-content) :is(p,li,blockquote) { color:inherit; font-size:inherit; }
.communication-workspace :is(.communication-rich-editable,.communication-rich-content) blockquote { border-left:3px solid var(--communication-border); padding-left:14px; margin:12px 0; }
.communication-rich-content { font-size:.86rem; line-height:1.8; color:var(--communication-text); overflow-wrap:anywhere; }
.communication-rich-content--collapsed { max-height:235px; overflow:hidden; mask-image:linear-gradient(#000 78%,transparent); }
.communication-rich-link:not([hidden]) { display:flex; flex-wrap:wrap; align-items:end; gap:8px; padding:12px; border-bottom:1px solid var(--communication-border); }
.communication-rich-link label { flex:1 1 200px; min-width:0; margin:0; }
.communication-mention { background:var(--communication-soft); color:var(--communication-text); border-bottom:1px solid #2888aa; border-radius:3px; padding:1px 3px; }
.communication-mention-actions { margin:10px 0; }
.communication-mention-picker { padding:14px; border:1px solid var(--communication-border); border-radius:9px; margin:14px 0; }
.communication-mention-picker .communication-actions { margin-top:12px; }
.communication-original-request { margin:23px 0 0; }
.communication-original-request > summary,.communication-briefing-revisions > summary { cursor:pointer; color:var(--communication-text); font-size:.82rem; padding:7px 0; }
.communication-original-request .communication-form-block { margin:15px 0 0; padding:16px; }
.communication-revision-list { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }
.communication-rich-revision { padding:16px; border:1px solid var(--communication-border); border-radius:9px; }
.communication-reference-original { padding:15px 0; }
.communication-reference-original > a { display:block; margin:8px 0; font-size:.82rem; overflow-wrap:anywhere; }
.communication-support-link,.communication-support-file { display:flex; gap:12px; align-items:start; padding:18px 0; border-bottom:1px solid var(--communication-border); }
.communication-support-link > i,.communication-support-file > i { flex-shrink:0; font-size:1.25rem; }
.communication-support-link > div,.communication-support-file > div:first-of-type { flex:1; min-width:0; font-size:.84rem; overflow-wrap:anywhere; }
.communication-support-link small,.communication-support-file small { display:block; margin-top:7px; color:var(--communication-muted); font-size:.7rem; }
.communication-support-file > .communication-actions { justify-content:flex-end; max-width:260px; }
.communication-private-upload { border:1px dashed var(--communication-border); border-radius:10px; background:var(--communication-soft); padding:18px; margin:22px 0; }
.communication-private-upload .communication-section-heading { margin-bottom:8px; }
.communication-upload-queue { border:1px solid var(--communication-border); border-radius:10px; padding:14px; margin:14px 0; }
.communication-upload-queue > div { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 0; font-size:.78rem; overflow-wrap:anywhere; }
.communication-upload-queue > div > span { color:var(--communication-muted); }
.communication-upload-queue progress { width:100%; height:8px; }
.communication-comment { margin-top:22px; padding-top:20px; border-top:1px solid var(--communication-border); }
.communication-comment-author { display:flex; flex-direction:column; gap:5px; margin-bottom:9px; }
.communication-comment-author strong { font-size:.82rem; }
.communication-comment-author small { font-size:.7rem; color:var(--communication-muted); }
.communication-comment > .communication-rich-content { margin:14px 0; }
.communication-comment blockquote,.communication-comment-reply-context { padding:12px; border-left:3px solid var(--communication-border); margin:12px 0; background:var(--communication-soft); font-size:.76rem; }
.communication-comment blockquote p,.communication-comment-reply-context p { margin:7px 0 0; font-size:.76rem; }
.communication-comment-attachments { display:flex; flex-wrap:wrap; gap:8px; }
.communication-comment-attachments .btn { max-width:100%; overflow-wrap:anywhere; }
.communication-comment-file-picker { margin:12px 0; font-size:.76rem; }
.communication-collaboration-sidebar .communication-form-block { padding:20px; }
.communication-collaboration-sidebar .communication-rich-editable { min-height:140px; }
.communication-collaboration-sidebar .communication-pagination > div { flex-wrap:wrap; }
.communication-collaboration .communication-file-preview { width:min(900px,calc(100% - 32px)); }
.communication-file-preview img { display:block; max-width:100%; max-height:65dvh; object-fit:contain; margin:auto; }
.communication-file-preview pre { padding:18px; border:1px solid var(--communication-border); background:var(--communication-soft); color:var(--communication-text); white-space:pre-wrap; overflow-wrap:anywhere; }
body.theme-dark .communication-collaboration :is(.form-control,.form-select) { background-color:#172334; color:#edf4ff; border-color:#647c97; }
body.theme-dark .communication-collaboration :is(.form-control,.form-select)::placeholder { color:#b9c6d8; }
body.theme-dark .communication-collaboration .btn-link { color:#9be3f3; }
@media(max-width:1000px) { .communication-collaboration { grid-template-columns:minmax(0,1fr); } .communication-collaboration-sidebar { grid-column:1; } }
@media(max-width:767.98px) {
  .communication-collaboration { display:block; }
  .communication-support-link,.communication-support-file { flex-wrap:wrap; }
  .communication-support-link > div,.communication-support-file > div:first-of-type { flex-basis:calc(100% - 40px); }
  .communication-support-file > .communication-actions { max-width:none; justify-content:flex-start; }
  .communication-briefing-form,.communication-link-form,.communication-collaboration-sidebar .communication-form-block { padding:15px; }
}
.communication-copy-feedback { padding:12px 25px; margin:0; }
body.theme-dark .communication-deadline-tag { color:#ffdc98; border-color:#ac8648; background:#3c301c; }
body.theme-dark .communication-deadline-tag--manual { color:#d6e6f6; border-color:var(--communication-border); background:var(--communication-soft); }
body.theme-dark .communication-demand-filters :is(.form-control,.form-select,.input-group-text) { background-color:#172334; color:#edf4ff; border-color:#647c97; }
body.theme-dark .communication-demand-filters .form-control::placeholder { color:#b9c6d8; opacity:1; }
@media(max-width:1100px) {
  .communication-demand-list-labels { display:none; }
  .communication-demand-card--list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem 1rem; }
  .communication-demands .communication-demand-card--list>.communication-demand-card-title { grid-column:1/-1; }
  .communication-demand-card--list>[data-label]::before { content:attr(data-label); display:block; flex:1 0 100%; width:100%; margin-bottom:.3rem; color:var(--communication-muted); font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; }
  .communication-demand-card--list > :is(.communication-demand-card-title,.communication-demand-card-unit,.communication-demand-people,.communication-demand-card-people-empty,.communication-demand-card-deadline,.communication-demand-progress,.communication-demand-card-condition) { grid-column:auto; grid-row:auto; }
  .communication-demand-filter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:767.98px) {
  .communication-demands { padding:1rem; }
  .communication-demands-heading { flex-wrap:wrap; gap:.75rem; }
  .communication-demands-heading-actions { justify-content:space-between; width:100%; }
  .communication-demand-filters { display:flex; gap:.75rem; padding:.8rem; }
  .communication-demand-order { width:100%; margin:0; }
  .communication-demand-order label { flex-basis:100%; }
  .communication-demand-order .form-select { flex:1; }
  .communication-demand-filter-grid { grid-template-columns:minmax(0,1fr); }
  .communication-demand-groups--board > .communication-demand-group { flex:0 0 calc(100% - 25px); }
  .communication-demand-groups--list > section { padding:.75rem; }
  .communication-demand-card--list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; padding:.8rem 0; }
  .communication-demand-card--list>.communication-demand-card-title { padding-right:30px; }
  .communication-demand-card--list>:is(.communication-demand-card-deadline,.communication-demand-progress,.communication-demand-card-condition) { grid-column:1/-1; }
  .communication-demands-loading .communication-demand-placeholder { flex-basis:calc(100% - 25px); }
  .communication-demand-card--list .communication-demand-card-title { grid-column:1/-1; }
  .communication-demand-dialog { width:100%; max-height:100dvh; height:100dvh; margin:0; border-radius:0; }
  .communication-demand-dialog-tools { padding:12px 14px; flex-wrap:wrap; }
  .communication-demand-dialog-tools > span { font-size:.7rem; }
  .communication-demand-dialog .communication-content { padding:18px; }
  .communication-demand-open-summary { padding:16px; }
  .communication-demand-open-summary dl { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px 12px; }
  .communication-demand-dialog .communication-request-detail-layout { display:block; }
}
/* Request tab and triage use the compact list/form scale of the Visitor Central.
   The page modifier keeps the demand dialog's existing composition intact. */
.communication-requests--page { --requests-title:var(--ictus-graphite,#293544); --requests-alert:#b43540; --requests-positive:#11734d; padding:1.25rem; }
.communication-requests--page .communication-requests-heading { align-items:center; margin-bottom:1rem; }
.communication-requests--page .communication-requests-heading>div { min-width:0; flex:1; }
.communication-requests--page .communication-requests-heading .communication-eyebrow { font-size:.72rem; font-weight:900; margin:0; letter-spacing:.04em; }
.communication-requests--page .communication-requests-heading h4 { color:var(--requests-title); font-size:1.05rem; font-weight:900; letter-spacing:0; margin:.15rem 0 0; overflow-wrap:anywhere; }
.communication-requests--page .communication-requests-heading p { font-size:.75rem; line-height:1.5; margin-top:.4rem; }
.communication-request-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(180px,1fr) auto; align-items:end; gap:.75rem; padding:.95rem; margin:0 0 .9rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); }
.communication-request-filters>div { min-width:0; }
.communication-request-filters label { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:700; margin-bottom:.3rem; }
.communication-request-filters .input-group-text { color:var(--communication-muted); background:var(--communication-surface); font-size:.8rem; }
.communication-request-filters .form-control,.communication-request-filters .form-select { font-size:.75rem; }
.communication-request-list-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; color:var(--communication-muted); font-size:.72rem; margin:.75rem 0; }
.communication-request-list-summary strong { color:var(--requests-title); font-weight:900; }
.communication-request-table { border:1px solid var(--communication-border); border-radius:8px; overflow:hidden; }
.communication-request-list-head,.communication-request-list-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) minmax(130px,1fr) auto; align-items:center; gap:1rem; padding:.85rem 1rem; }
.communication-request-list-head { background:var(--communication-soft); color:var(--communication-muted); font-size:.68rem; font-weight:900; }
.communication-request-list-head>span:last-child { width:50px; }
.communication-request-list-row { border-top:1px solid var(--communication-border); background:var(--communication-surface); }
.communication-request-list-row:hover { background:var(--communication-soft); }
.communication-request-list-row>div,.communication-request-list-row>span { min-width:0; overflow-wrap:anywhere; }
.communication-requests--page .communication-request-list-copy>strong { color:var(--requests-title); font-size:.8rem; font-weight:800; }
.communication-requests--page .communication-request-list-copy p { color:var(--communication-muted); font-size:.72rem; margin-top:.25rem; line-height:1.5; }
.communication-request-list-row .communication-request-badges { gap:.4rem; }
.communication-request-state,.communication-request-information-count { display:inline-block; width:fit-content; padding:.2rem .4rem; border:1px solid var(--communication-border); border-radius:4px; background:var(--communication-soft); color:var(--communication-text); font-size:.65rem; font-weight:700; }
.communication-request-state[data-state=draft] { border-style:dashed; color:var(--communication-muted); }
.communication-request-state[data-state=triage] { border-color:#2888aa; }
.communication-request-state[data-state=completed],.communication-request-state[data-state=delivery] { color:var(--requests-positive); border-color:var(--requests-positive); }
.communication-request-state[data-state=cancelled] { color:var(--requests-alert); border-color:var(--requests-alert); }
.communication-request-state[data-state=archived] { color:var(--communication-muted); }
.communication-request-information-count { border-color:#a4813d; }
.communication-request-information-count.is-responded { color:var(--requests-positive); border-color:var(--requests-positive); }
.communication-request-updated { color:var(--communication-muted); font-size:.72rem; }
.communication-requests--page .communication-request-list-empty h5 { color:var(--requests-title); font-size:.9rem; font-weight:800; }
.communication-requests-loading { display:grid; gap:.6rem; margin:1rem 0; }
.communication-requests-loading>div { padding:1rem; border:1px solid var(--communication-border); border-radius:8px; }
.communication-requests-loading span:not(.visually-hidden),.communication-requests-loading strong,.communication-requests-loading small { display:block; height:12px; border-radius:4px; background:var(--communication-soft); animation:entity-list-pulse 1.35s ease-in-out infinite; }
.communication-requests-loading span:not(.visually-hidden) { width:45%; }.communication-requests-loading strong { width:65%; margin:.6rem 0; }.communication-requests-loading small { width:25%; }
.communication-requests--page .communication-form-block { border-radius:8px; padding:1rem; margin-bottom:1rem; }
.communication-requests--page .communication-form-block h5 { color:var(--requests-title); font-size:.88rem; font-weight:900; margin-bottom:.6rem; }
.communication-requests--page .communication-form-block>p { font-size:.75rem; line-height:1.5; margin-bottom:.8rem; }
.communication-requests--page>.communication-edit-form label { font-size:.75rem; margin:.7rem 0 .35rem; }
.communication-requests--page>.communication-edit-form .communication-check { font-weight:500; }
.communication-requests--page .communication-required { padding:.75rem; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:6px; font-size:.75rem; margin-bottom:1rem; }
.communication-requests--page .communication-form-footer { margin-top:1rem; padding-top:1rem; gap:.75rem; }
.communication-requests--page .communication-round,.communication-requests--page .communication-question { border-radius:6px; padding:1rem; margin:.75rem 0; }
.communication-requests--page .communication-question h6 { color:var(--requests-title); font-size:.82rem; font-weight:800; margin:.75rem 0; }
.communication-requests--page .communication-details>div { gap:1rem; padding:.8rem 0; font-size:.78rem; }
.communication-requests--page .communication-options-search { margin:.75rem 0; font-size:.75rem; }
.communication-requests--page .communication-options-search summary { cursor:pointer; }
.communication-requests--page .communication-history li { padding:.8rem 0; font-size:.75rem; }
body.theme-dark .communication-requests--page { --requests-title:#edf4ff; --requests-alert:#ffb1ba; --requests-positive:#98e4b9; }
@media(max-width:991px) {
  .communication-request-filters { grid-template-columns:minmax(0,1fr) minmax(150px,1fr) auto; }
  .communication-request-list-head { display:none; }.communication-request-list-row { grid-template-columns:repeat(2,minmax(0,1fr)) auto; gap:.75rem; }
  .communication-request-list-row>.communication-request-list-copy { grid-column:1/-1; }
  .communication-request-list-row>[data-label]::before { content:attr(data-label); display:block; flex:1 0 100%; width:100%; margin-bottom:.3rem; color:var(--communication-muted); font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; }
}
@media(max-width:767px) {
  .communication-requests--detail .communication-requests-heading>div { flex:1 1 100%; }
  .communication-requests--page { padding:1rem; }.communication-request-filters { grid-template-columns:minmax(0,1fr); padding:.8rem; }.communication-request-filters>.btn { justify-self:start; }
  .communication-request-list-row { grid-template-columns:minmax(0,1fr) auto; padding:.85rem; }
  .communication-request-list-row>.communication-request-badges { grid-column:1/-1; }
  .communication-requests--page .communication-form-block { padding:.85rem; }
  .communication-requests--page .communication-details>div { grid-template-columns:minmax(0,1fr); gap:.3rem; }
  .communication-requests--page .communication-form-footer { align-items:start; }
  .communication-requests--page .communication-form-footer>.communication-actions { width:100%; }
  .communication-requests--page .communication-form-footer .btn { flex:1 1 145px; }
  .communication-requests--page .input-group { flex-wrap:wrap; }.communication-requests--page .input-group>.form-select { width:100%; border-radius:5px; }
  .communication-requests--page .communication-pagination { flex-wrap:wrap; gap:.6rem; }.communication-requests--page .communication-pagination>div { display:flex; flex-wrap:wrap; gap:.5rem; }
}
@media(prefers-reduced-motion:reduce) { .communication-requests-loading span,.communication-requests-loading strong,.communication-requests-loading small { animation:none; } }

.communication-request-badges { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.communication-reference { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto; align-items:end; gap:12px; margin-bottom:18px; }
.communication-reference > div { min-width:0; }
.communication-reference-link { display:block; margin:10px 0; overflow-wrap:anywhere; }
.communication-prewrap { white-space:pre-wrap; overflow-wrap:anywhere; }
.communication-previous-form { margin:20px 0; }
.communication-information-reply { padding:18px 0 0; margin-top:15px; border-top:1px solid var(--communication-border); }
.communication-information-reply small { color:var(--communication-muted); }
.communication-requests .communication-question h6 { margin:18px 0; font-size:.92rem; color:var(--communication-text); }
.communication-requests .communication-form-block h5 { color:var(--communication-text); }
.communication-requests fieldset { min-width:0; }
.communication-options-search { margin:18px 0; font-size:.82rem; }
.communication-options-search .form-control { max-width:360px; margin:8px 0; }
.communication-history { list-style:none; margin:15px 0 0; padding:0; }
.communication-history li { padding:16px 0; border-bottom:1px solid var(--communication-border); font-size:.82rem; }
.communication-history small { display:block; margin-top:6px; color:var(--communication-muted); }
.communication-info-dialog { width:min(720px,calc(100% - 32px)); max-height:calc(100vh - 48px); overflow:auto; padding:28px; border:1px solid var(--communication-border); border-radius:16px; background:var(--communication-surface); color:var(--communication-text); }
.communication-info-dialog::backdrop { background:rgba(8,19,35,.64); }
.communication-requests .communication-info-dialog .communication-section-heading h4 { font-size:1.2rem; color:var(--communication-text); }
.communication-info-dialog .communication-help { color:var(--communication-muted); }
body.theme-dark .communication-requests :is(.form-control,.form-select) { color:#edf4ff; background-color:#172334; border-color:#647c97; }
body.theme-dark .communication-requests :is(.form-control,.form-select)::placeholder { color:#b9c6d8; opacity:1; }
body.theme-dark .communication-requests .btn-link { color:#9be3f3; }
body.theme-dark .communication-requests .communication-info-dialog h4 { color:#edf4ff; }
@media(max-width:767.98px) {
  .communication-reference { grid-template-columns:minmax(0,1fr); }
  .communication-info-dialog { padding:18px; }
  .communication-management-grid { grid-template-columns:minmax(0,1fr); }
  .communication-management-card { padding:18px; }
  .communication-toolbar { flex-wrap:wrap; }
  .communication-toolbar > div,.communication-toolbar .entity-list__search { width:100%; max-width:none; }
  .communication-record { flex-wrap:wrap; gap:12px; }
  .communication-record__copy { flex-basis:calc(100% - 70px); }
  .communication-record > .communication-badge { margin-left:54px; }
  .communication-record > .btn { margin-left:auto; }
  .communication-form-block { padding:16px; }
  .communication-checklist { grid-template-columns:minmax(0,1fr); }
  .communication-question,.communication-round { padding:14px; }
  .communication-edit-form .input-group { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; }
  .communication-edit-form .input-group > .form-control { width:100%; border-radius:5px; }
  .communication-edit-form .input-group .btn { width:100%; border-radius:5px; margin:0; }
  .communication-content { padding:18px; }
  .communication-hero { grid-template-columns:minmax(0,1fr); padding:22px; gap:0; }
  .communication-hero__art { display:none; }
  .communication-hero h4 { font-size:1.45rem; }
  .communication-mode { padding:18px; gap:14px; }
  .communication-mode .btn { width:100%; }
  .communication-details > div { grid-template-columns:minmax(0,1fr); gap:8px; }
  .communication-breadcrumb { flex-wrap:wrap; }
  .communication-workspace .visitors-list-page__title-copy { min-width:0; }
  .communication-workspace .visitors-list-page__title-row { gap:10px; }
}

.communication-demand-dialog .communication-demand-people > summary { display:flex; flex-direction:row; align-items:center; gap:0; }
body.theme-dark .communication-collaboration .alert-success { color:#a3eed0; background:#173e35; border-color:#3d8069; }
body.theme-dark .communication-collaboration .alert-danger { color:#ffd3d7; background:#45262e; border-color:#98616e; }
.communication-schedule-summary { display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; font-size:.78rem; color:var(--communication-muted); margin:15px 0; }
.communication-schedule-search { margin:20px 0; }
.communication-schedule-legend { display:flex; flex-wrap:wrap; gap:10px; margin:15px 0; font-size:.68rem; color:var(--communication-muted); }
.communication-schedule-legend > span { display:flex; align-items:center; gap:6px; }
.communication-schedule-legend > span::before { content:''; display:block; width:12px; height:12px; border:1px solid #71839a; border-radius:50%; background:var(--communication-surface); }
.communication-schedule-legend .is-in_progress::before { background:#316bcc; }
.communication-schedule-legend .is-waiting::before { background:#e8b743; }
.communication-schedule-legend .is-completed::before { background:#16845e; }
.communication-schedule-round { margin:18px 0; border:1px solid var(--communication-border); border-radius:10px; overflow:hidden; }
.communication-schedule-round-heading { width:100%; display:flex; align-items:center; flex-wrap:wrap; text-align:left; gap:10px; padding:14px 16px; background:var(--communication-soft); color:var(--communication-text); border:0; font-size:.85rem; }
.communication-schedule-round-heading > span { padding:3px 8px; border:1px solid var(--communication-border); border-radius:20px; font-size:.68rem; }
.communication-schedule-round-heading > small { margin-left:auto; color:var(--communication-muted); }
.communication-schedule-step { border-top:1px solid var(--communication-border); padding:16px 13px; background:var(--communication-surface); }
.communication-schedule-step-row { display:grid; grid-template-columns:28px minmax(0,1fr) 50px 88px 102px 28px; align-items:center; gap:10px; }
.communication-step-status { border:1px solid #70849c; border-radius:50%; color:var(--communication-text); background:var(--communication-surface); width:25px; height:25px; display:grid; place-items:center; padding:0; font-size:.85rem; }
.communication-schedule-step.is-in_progress .communication-step-status { color:white; background:#316bcc; border-color:#5789d8; }
.communication-schedule-step.is-waiting .communication-step-status { color:#422e00; background:#e8b743; border-color:#b58418; }
.communication-schedule-step.is-completed .communication-step-status { color:white; background:#16845e; border-color:#339873; }
.communication-step-title { min-width:0; background:transparent; border:0; color:var(--communication-text); text-align:left; padding:0; overflow-wrap:anywhere; font-size:.81rem; font-weight:600; }
.communication-step-title:hover { text-decoration:underline; }
.communication-step-title small,.communication-step-deadline small,.communication-step-completed small { display:block; font-size:.63rem; font-weight:400; color:var(--communication-muted); margin:4px 0; }
.communication-step-duration,.communication-step-deadline,.communication-step-completed { font-size:.7rem; color:var(--communication-text); }
.communication-step-deadline strong { display:block; font-size:.64rem; color:#a74400; margin-top:3px; }
.communication-step-person { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--communication-soft); color:var(--communication-text); border:1px solid var(--communication-border); font-size:.65rem; overflow:hidden; }
.communication-step-person img { width:100%; height:100%; object-fit:cover; }
.communication-step-condition,.communication-step-review,.communication-step-window { font-size:.73rem!important; line-height:1.6; margin:12px 0 0 38px; color:var(--communication-muted); }
.communication-step-review { border-left:3px solid #d5a32f; padding-left:11px; }
.communication-step-work { margin-top:18px; padding-top:18px; border-top:1px solid var(--communication-border); }
.communication-step-work .communication-section-heading { margin-bottom:12px; }
.communication-work-source { margin:18px 0; padding:13px; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:8px; font-size:.8rem; overflow-wrap:anywhere; }
.communication-work-source summary { cursor:pointer; color:var(--communication-text); }
.communication-work-source .communication-rich-content { margin-top:12px; }
.communication-schedule-plan .communication-planning-round { margin:22px 0; padding:18px; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:10px; }
.communication-planning-step { margin:18px 0; padding:16px; background:var(--communication-surface); border:1px solid var(--communication-border); border-radius:8px; }
.communication-planning-step .communication-actions,.communication-planning-round > .communication-actions { margin:12px 0; }
.communication-planning-step.is-cancelled { border-style:dashed; }
.communication-planning-step.is-cancelled > input,.communication-schedule-step.is-cancelled .communication-step-title { text-decoration:line-through; }
.communication-schedule-preview { margin-top:24px; border:1px solid #378574; padding:18px; border-radius:10px; }
.communication-schedule-preview article { margin:16px 0; padding-top:12px; border-top:1px solid var(--communication-border); }
.communication-schedule-preview li { font-size:.78rem; color:var(--communication-text); margin:10px 0; }
.communication-schedule-preview details { margin:15px 0; }
body.theme-dark .communication-step-deadline strong { color:#ffcf8a; }
body.theme-dark .communication-execution .alert-danger { color:#ffd3d7; background:#45262e; border-color:#98616e; }
body.theme-dark .communication-execution .alert-success { color:#a3eed0; background:#173e35; border-color:#3d8069; }
@media(max-width:1200px) { .communication-schedule-step-row { grid-template-columns:28px minmax(0,1fr) 28px; } .communication-step-title { grid-column:2;grid-row:1; } .communication-step-person { grid-column:3;grid-row:1; } .communication-step-duration { grid-column:1/2;grid-row:2; } .communication-step-deadline { grid-column:2;grid-row:2; } .communication-step-completed { grid-column:3;grid-row:2;min-width:80px;justify-self:end; } }
@media(max-width:767.98px) { .communication-schedule-step { padding:15px 12px; } .communication-step-title { font-size:.83rem; } .communication-schedule-step-row { gap:12px; } .communication-schedule-round-heading { padding:14px 12px; } .communication-schedule-round-heading > small { flex-basis:100%;margin-left:25px; } .communication-step-condition,.communication-step-review,.communication-step-window { margin-left:0; } .communication-schedule-plan .communication-planning-round { padding:12px; } .communication-planning-step { padding:12px; } .communication-execution .communication-reference { grid-template-columns:minmax(0,1fr); } }
.communication-workspace .communication-step-status { border-radius:50%; }
body.theme-dark .communication-workspace .alert-success { color:#a3eed0!important; background-color:#173e35!important; border-color:#3d8069; }
body.theme-dark .communication-workspace .alert-danger { color:#ffd3d7!important; background-color:#45262e!important; border-color:#98616e; }
@media(max-width:1200px) { .communication-schedule-step-row { grid-template-columns:42px minmax(0,1fr) 94px; } .communication-step-person { justify-self:end; } .communication-step-duration { white-space:nowrap; } .communication-step-completed { min-width:0;max-width:94px; } }
.communication-deadlines { margin-top:24px; padding-top:22px; border-top:1px solid var(--communication-border); }
.communication-deadlines > details { margin:18px 0; }
.communication-deadlines summary { cursor:pointer; color:var(--communication-text); font-size:.82rem; }
.communication-deadline-request { padding:18px; margin:16px 0; border:1px solid var(--communication-border); border-radius:10px; background:var(--communication-surface); }
.communication-deadline-request .communication-section-heading { margin-bottom:14px; }
.communication-deadline-request .communication-details { font-size:.8rem; }
.communication-deadline-decisions { margin:15px 0; padding-left:20px; font-size:.78rem; color:var(--communication-text); }
.communication-deadline-decisions li { padding:5px 0; }
.communication-deadline-decisions small { display:block; color:var(--communication-muted); }
.communication-deadline-history { padding:14px 0; border-bottom:1px solid var(--communication-border); font-size:.78rem; }
.communication-deadline-dialog { width:min(820px,calc(100% - 32px)); }
.communication-deadline-dialog label { display:block; font-size:.82rem; color:var(--communication-text); margin:16px 0 8px; }
.communication-deadline-dialog .communication-check { display:flex; gap:10px; }
.communication-deadline-dialog .form-check-input { flex-shrink:0; }
.communication-deadline-preview { border:1px solid #378574; border-radius:10px; padding:18px; margin-top:22px; font-size:.83rem; }
.communication-deadline-preview li { margin:8px 0; }
.communication-cascade-picker { padding:12px; border:1px solid var(--communication-border); border-radius:8px; }
.communication-step-request-date { margin:8px 0 0 30px; }
body.theme-dark .communication-deadline-dialog :is(.form-control,.form-select) { color:#edf4ff; background-color:#172334; border-color:#647c97; }
body.theme-dark .communication-deadline-dialog .alert-danger { color:#ffd3d7!important; background-color:#45262e!important; }
@media(max-width:767.98px) { .communication-deadline-dialog { padding:20px; } .communication-deadline-request { padding:14px; } .communication-step-request-date { margin-left:0; } }
/* Versioned material review: same shell and theme tokens as Communication. */
/* Approvals follow the compact hierarchy and list patterns of the Visitor Central. */
.communication-approvals { --review-title:var(--ictus-graphite,#293544); --review-alert:#b43540; --review-approved:#11734d; --review-change:#855b14; padding:1.25rem; }
.communication-approvals-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.communication-approvals-eyebrow { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.communication-approvals .communication-approvals-heading h4 { color:var(--review-title); font-size:1.05rem; font-weight:900; letter-spacing:0; margin:.15rem 0 0; }
.communication-approval-types { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; padding-bottom:.65rem; border-bottom:1px solid var(--communication-border); margin-bottom:1rem; }
.communication-approvals .communication-approval-types button { min-height:34px; padding:.5rem .8rem; border:0; border-radius:6px; background:transparent; color:var(--communication-muted); font-size:.75rem; font-weight:700; text-align:left; }
.communication-approvals .communication-approval-types button:hover { background:var(--communication-soft); color:var(--communication-text); }
.communication-approvals .communication-approval-types button.is-active { background:var(--communication-soft); color:var(--communication-text); box-shadow:inset 0 -3px #2888aa; font-weight:900; }
.communication-review-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(150px,1fr) auto; align-items:end; gap:.75rem; padding:.95rem; margin:0 0 .85rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); }
.communication-review-filters>div { min-width:0; }
.communication-review-filters label { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:700; margin-bottom:.3rem; }
.communication-review-filters .form-control,.communication-review-filters .form-select { font-size:.75rem; }
.communication-review-filters .input-group-text { color:var(--communication-muted); background:var(--communication-surface); font-size:.8rem; }
.communication-review-filters .communication-actions { flex-wrap:wrap; }
.communication-review-groups { display:flex; flex-wrap:wrap; gap:.45rem; margin:.85rem 0 1rem; }
.communication-approvals .communication-review-groups button { display:inline-flex; align-items:center; justify-content:space-between; gap:.55rem; padding:.4rem .65rem; border:1px solid var(--communication-border); border-radius:6px; color:var(--communication-muted); background:var(--communication-surface); font-size:.72rem; font-weight:700; text-align:left; }
.communication-approvals .communication-review-groups button:hover { background:var(--communication-soft); color:var(--communication-text); }
.communication-approvals .communication-review-groups button.is-active { color:var(--communication-text); border-color:#2888aa; background:var(--communication-soft); }
.communication-review-groups button>span { display:inline-grid; place-items:center; min-width:22px; padding:.05rem .3rem; border-radius:4px; color:var(--communication-text); background:var(--communication-soft); font-size:.68rem; font-weight:900; }
.communication-review-groups button.is-active>span { background:var(--communication-surface); }
.communication-review-list-group>header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; margin:.8rem 0 .6rem; }
.communication-approvals .communication-review-list-group h5 { color:var(--review-title); font-size:.85rem; font-weight:900; margin:0; }
.communication-review-list-group>header>span { color:var(--communication-muted); font-size:.72rem; }
.communication-review-list { border:1px solid var(--communication-border); border-radius:8px; overflow:hidden; background:var(--communication-surface); }
.communication-review-list-head,.communication-approvals .communication-review-row { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,1.2fr) 16px; gap:1rem; align-items:center; padding:.85rem 1rem; }
.communication-review-list-head { color:var(--communication-muted); font-size:.68rem; font-weight:900; background:var(--communication-soft); }
.communication-approvals .communication-review-row { position:relative; width:100%; border:0; border-top:1px solid var(--communication-border); border-radius:0; background:var(--communication-surface); color:var(--communication-muted); text-align:left; font-size:.75rem; }
.communication-approvals .communication-review-row>span { min-width:0; overflow-wrap:anywhere; }
.communication-approvals .communication-review-row:hover,.communication-approvals .communication-review-row:focus-visible { background:var(--communication-soft); }
.communication-approvals .communication-review-row strong { color:var(--review-title); font-size:.8rem; font-weight:800; }
.communication-approvals .communication-review-row small { display:block; font-size:.72rem; color:var(--communication-muted); line-height:1.5; margin-top:.2rem; }
.communication-review-row>i { color:var(--communication-muted); font-size:.75rem; }
.communication-review-row.is-overdue { border-left:3px solid var(--review-alert); padding-left:calc(1rem - 3px); }
.communication-review-version,.communication-review-type { display:inline-block; width:fit-content; padding:.15rem .4rem; border:1px solid var(--communication-border); border-radius:4px; background:var(--communication-soft); color:var(--communication-muted); font-size:.65rem; }
.communication-review-version { margin-top:.35rem; }
.communication-review-state-badge { display:inline-block; width:fit-content; border:1px solid var(--communication-border); border-radius:4px; padding:.2rem .4rem; font-size:.65rem; font-weight:700; color:var(--communication-text); background:var(--communication-soft); }
.communication-review-row-state>strong { display:block; margin-bottom:.35rem; }
.communication-review-state-badge[data-state=approved] { color:var(--review-approved); border-color:var(--review-approved); }
.communication-review-state-badge[data-state=changes] { color:var(--review-change); border-color:var(--review-change); }
.communication-review-state-badge[data-state=withdrawn] { color:var(--communication-muted); }
.communication-review-row .communication-review-overdue { display:block; color:var(--review-alert); font-size:.68rem; font-weight:800; margin-top:.3rem; }
.communication-approvals .communication-approvals-note { color:var(--communication-muted); font-size:.72rem; line-height:1.5; margin-top:1rem; }
.communication-approvals-loading { display:grid; gap:.6rem; margin:1rem 0; }
.communication-approvals-loading>div { padding:1rem; border:1px solid var(--communication-border); border-radius:8px; }
.communication-approvals-loading span:not(.visually-hidden),.communication-approvals-loading strong,.communication-approvals-loading small { display:block; height:12px; border-radius:4px; background:var(--communication-soft); animation:entity-list-pulse 1.35s ease-in-out infinite; }
.communication-approvals-loading span:not(.visually-hidden) { width:45%; }.communication-approvals-loading strong { width:65%; margin:.6rem 0; }.communication-approvals-loading small { width:25%; }
body.theme-dark .communication-approvals { --review-title:#edf4ff; --review-alert:#ffb1ba; --review-approved:#98e4b9; --review-change:#f1c364; }
.communication-review-dialog { width:min(1120px,calc(100vw - 32px)); max-width:none; }
.communication-review-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:1.25rem; }
.communication-review-material,.communication-review-context { min-width:0; padding:1rem; border:1px solid var(--communication-border); border-radius:8px; }
.communication-review-context { background:var(--communication-soft); }
.communication-review-material h5 { margin:18px 0; }
.communication-review-material details { margin:20px 0; }
.communication-review-image { display:block; max-width:100%; max-height:520px; object-fit:contain; border-radius:8px; margin:16px auto; }
.communication-review-files>div,.communication-review-comment { padding:.8rem 0; border-bottom:1px solid var(--communication-border); }
.communication-review-files small,.communication-review-comment small { display:block; font-size:.75rem; margin-top:.3rem; color:var(--communication-muted); }
.communication-review-hash { overflow-wrap:anywhere; }
.communication-review-decisions { list-style:none; padding:0; margin:1rem 0; }
.communication-review-decisions>li { border:1px solid var(--communication-border); border-radius:6px; background:var(--communication-surface); padding:.75rem; margin:.5rem 0; color:var(--communication-text); font-size:.78rem; overflow-wrap:anywhere; }
.communication-review-context h5 { margin-top:18px; }
.communication-review-context .communication-actions { flex-wrap:wrap; }
.communication-review-dialog>.communication-section-heading{position:sticky;top:-28px;z-index:3;background:var(--communication-surface,#fff);padding:12px 0;border-bottom:1px solid var(--communication-border,#d8dee6)}
#communicationReviewSettingsDialog .communication-check,#communicationReviewDialog .communication-check{display:flex;align-items:flex-start;gap:8px;margin:10px 0}#communicationReviewSettingsDialog label[for],#communicationReviewDialog .communication-edit-form label[for]{display:block;margin:14px 0 6px}#communicationReviewSettingsDialog fieldset h6{margin-top:18px}#communicationReviewDialog .communication-review-context h5{margin-top:22px}

.communication-approvals .communication-review-dialog>.communication-section-heading h4 { font-size:1.15rem; color:var(--review-title); font-weight:800; }
.communication-approvals .communication-review-layout h5 { color:var(--review-title); font-size:.9rem; font-weight:800; }
.communication-approvals .communication-review-layout h6 { color:var(--review-title); font-size:.8rem; font-weight:800; }
.communication-review-context .communication-details>div { gap:.8rem; padding:.75rem 0; font-size:.78rem; }
.communication-review-context .communication-notice { font-size:.78rem; line-height:1.5; margin:1rem 0; }
.communication-review-context .communication-help { font-size:.75rem; line-height:1.5; }
.communication-review-comment .communication-rich-content { margin-top:.5rem; }
@media(max-width:991px) {
  .communication-review-filters { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }.communication-review-filters>.communication-actions { grid-column:1/-1; justify-content:end; }
  .communication-review-list-head { display:none; }.communication-approvals .communication-review-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .communication-review-row>.communication-review-row-material { grid-column:1/-1; padding-right:1.25rem; }
  .communication-review-row>.communication-review-row-state { grid-column:1/-1; }
  .communication-review-row>[data-label]::before { content:attr(data-label); display:block; color:var(--communication-muted); font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; margin-bottom:.3rem; }
  .communication-review-row>i { position:absolute; top:1rem; right:1rem; }
}
@media(max-width:767px) {
  .communication-approvals { padding:1rem; }.communication-review-filters { grid-template-columns:minmax(0,1fr); padding:.8rem; }.communication-review-filters>.communication-actions { justify-content:start; }
  .communication-approval-types { gap:.35rem; }.communication-approvals .communication-approval-types button { flex:1; padding:.5rem .6rem; font-size:.72rem; }
  .communication-approvals .communication-review-groups button { flex:1 1 130px; }.communication-review-groups button:last-child { flex-basis:100%; }
  .communication-review-layout { grid-template-columns:minmax(0,1fr); gap:.75rem; }.communication-review-dialog { width:calc(100vw - 24px); }
  .communication-review-material,.communication-review-context { padding:.8rem; }
  .communication-review-context .communication-details>div { grid-template-columns:minmax(0,1fr); gap:.3rem; }
  .communication-approvals .communication-pagination { flex-wrap:wrap; gap:.6rem; }.communication-approvals .communication-pagination>div { display:flex; flex-wrap:wrap; gap:.5rem; }
}
@media(prefers-reduced-motion:reduce) { .communication-approvals-loading span,.communication-approvals-loading strong,.communication-approvals-loading small { animation:none; } }

/* Calendar page: same compact hierarchy, filters and surfaces as the Visitor Central. */
.communication-calendars { --calendar-heading:var(--ictus-graphite,#293544); padding:1.25rem; }
.communication-calendars-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.communication-calendars-eyebrow { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.communication-calendars .communication-calendars-heading h4 { color:var(--calendar-heading); font-size:1.05rem; font-weight:900; margin:.15rem 0 0; letter-spacing:0; }
.communication-calendar-tabs { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; margin:0 0 1rem; border-bottom:1px solid var(--communication-border); padding-bottom:.65rem; }
.communication-calendars .communication-calendar-tabs button { border:0; background:transparent; color:var(--communication-muted); border-radius:6px; padding:.5rem .8rem; font-size:.75rem; font-weight:700; min-height:34px; }
.communication-calendars .communication-calendar-tabs button:hover { background:var(--communication-soft); color:var(--communication-text); }
.communication-calendars .communication-calendar-tabs button.is-active { background:var(--communication-soft); color:var(--communication-text); box-shadow:inset 0 -3px #2888aa; font-weight:900; }
.communication-calendar-toolbar { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin-bottom:.85rem; }
.communication-calendar-period { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; min-width:0; }
.communication-calendar-period .communication-actions { gap:.4rem; }
.communication-calendars .communication-calendar-toolbar h5 { color:var(--calendar-heading); font-size:.9rem; font-weight:900; margin:0; text-transform:capitalize; }
.communication-calendar-period-fields { display:flex; align-items:end; gap:.65rem; }
.communication-calendar-period-fields>div { min-width:0; }
.communication-calendar-month { width:185px; }
.communication-calendar-toolbar label,.communication-calendar-filters label { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:700; margin-bottom:.3rem; }
.communication-calendar-toolbar .form-control,.communication-calendar-toolbar .form-select { font-size:.75rem; width:100%; }
.communication-calendar-filters { display:block; padding:.95rem; margin-bottom:.9rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); }
.communication-calendar-filter-fields { display:grid; grid-template-columns:minmax(0,2fr) minmax(140px,1fr) minmax(130px,1fr); gap:.75rem; }
.communication-calendar-filter-fields>div { min-width:0; }
.communication-calendar-filter-fields .input-group-text { background:var(--communication-surface); color:var(--communication-muted); font-size:.8rem; }
.communication-calendar-filter-fields .form-control,.communication-calendar-filter-fields .form-select { font-size:.75rem; }
.communication-calendar-filter-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem; margin-top:.8rem; }
.communication-calendar-filters .communication-check { display:flex; align-items:center; gap:.5rem; font-weight:600; margin:0; }
.communication-calendar-filter-actions>.communication-actions { margin-left:auto; }
.communication-calendars .communication-calendar-filter-options { margin:.8rem 0 0; padding-top:.7rem; border-top:1px solid var(--communication-border); color:var(--communication-muted); font-size:.72rem; }
.communication-calendar-filter-options summary { cursor:pointer; width:fit-content; }
.communication-calendar-filter-options summary:focus-visible { outline:3px solid var(--communication-text); outline-offset:3px; }
.communication-calendar-filter-options .input-group { margin-top:.6rem; }
.communication-calendar-filter-options .communication-actions { margin-top:.4rem; }
.communication-calendar-filter-options .btn { font-size:.72rem; }
.communication-calendar-options-error { margin-top:.75rem; font-size:.75rem; color:var(--communication-text); }
.communication-calendar-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; color:var(--communication-muted); font-size:.72rem; margin-bottom:.65rem; }
.communication-calendars .communication-calendar-summary strong { color:var(--calendar-heading); font-weight:900; }
.communication-calendar-grid-scroll { overflow-x:auto; border:1px solid var(--communication-border); border-radius:8px; scrollbar-width:thin; scrollbar-color:var(--communication-border) transparent; }
.communication-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); min-width:650px; background:var(--communication-surface); }
.communication-calendar-weekday { padding:.6rem; text-align:center; background:var(--communication-soft); color:var(--communication-muted); border-bottom:1px solid var(--communication-border); font-size:.65rem; font-weight:900; letter-spacing:.03em; }
.communication-calendar-day { min-height:120px; padding:.4rem; border-right:1px solid var(--communication-border); border-bottom:1px solid var(--communication-border); min-width:0; }
.communication-calendar-day:nth-child(7n) { border-right:0; }
.communication-calendar-day.is-outside { background:var(--communication-soft); }
.communication-calendar-day.is-today { box-shadow:inset 0 0 0 2px #2888aa; }
.communication-calendars .communication-calendar-day-number { background:transparent; border:0; border-radius:50%; padding:.25rem .45rem; color:var(--communication-muted); font-size:.72rem; font-weight:700; }
.communication-calendars .communication-calendar-day-number:hover { background:var(--communication-soft); color:var(--communication-text); }
.is-today>.communication-calendars .communication-calendar-day-number { background:var(--communication-text); color:var(--communication-surface); font-weight:900; }
.communication-calendars .communication-calendar-chip { display:block; width:100%; min-width:0; text-align:left; border:1px solid var(--communication-border); border-left:3px solid; border-radius:5px; background:var(--communication-soft); color:var(--communication-text); padding:.35rem; margin-top:.3rem; font-size:.68rem; }
.communication-calendar-chip span,.communication-calendar-chip strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.communication-calendars .communication-calendar-chip strong { font-size:.7rem; font-weight:700; color:var(--calendar-heading); }
.communication-calendars .communication-calendar-chip small { display:block; font-size:.65rem; color:var(--communication-muted); }
.communication-calendar-chip.is-cancelled strong { text-decoration:line-through; }
.communication-calendar-chip:hover { outline:1px solid var(--communication-text); }
.communication-calendar-grid.is-week .communication-calendar-day { min-height:240px; }
.communication-calendars .communication-calendar-grid-hint { font-size:.7rem; color:var(--communication-muted); margin:.5rem 0 .8rem; }
.communication-calendar-grid-hint i { margin-right:.25rem; }
.communication-calendars .communication-calendar-agenda-date { margin:1.1rem 0 .6rem; color:var(--calendar-heading); font-size:.78rem; font-weight:900; }
.communication-calendar-legend { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; margin:.9rem 0; padding-top:.75rem; border-top:1px solid var(--communication-border); }
.communication-calendar-legend>span { display:flex; align-items:center; gap:.4rem; color:var(--communication-muted); font-size:.7rem; }
.communication-calendar-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.communication-calendars .communication-calendar-note { color:var(--communication-muted); font-size:.7rem; margin:.75rem 0; }
.communication-calendar-loading { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; padding:1rem 0; }
.communication-calendar-loading>div { padding:1rem; border:1px solid var(--communication-border); border-radius:8px; }
.communication-calendar-loading span:not(.visually-hidden),.communication-calendar-loading strong { display:block; border-radius:4px; background:var(--communication-soft); animation:entity-list-pulse 1.35s ease-in-out infinite; }
.communication-calendar-loading span:not(.visually-hidden) { height:13px; width:55%; }
.communication-calendar-loading strong { height:80px; margin-top:.75rem; }
body.theme-dark .communication-calendars { --calendar-heading:#edf4ff; }

.communication-calendar-agenda-item[data-button-layout] { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; padding:16px; margin:10px 0; border:1px solid var(--communication-border); border-left:4px solid; border-radius:10px; background:var(--communication-surface); color:var(--communication-text); text-align:left; }
.communication-calendar-agenda-item>span { min-width:0; overflow-wrap:anywhere; }
.communication-calendar-agenda-item>span:nth-child(2) { flex:1; }
.communication-calendar-agenda-item small { display:block; color:var(--communication-muted); font-size:.78rem; margin-top:5px; }
.communication-calendars .communication-calendar-agenda-item { gap:.9rem; border-radius:8px; padding:.8rem; margin:.5rem 0; border-left-width:3px; box-shadow:0 3px 10px rgba(31,45,61,.035); }
.communication-calendars .communication-calendar-agenda-item:hover { background:var(--communication-soft); }
.communication-calendars .communication-calendar-agenda-item strong { color:var(--calendar-heading); font-size:.8rem; font-weight:800; }
.communication-calendars .communication-calendar-agenda-item small { font-size:.72rem; color:var(--communication-muted); }
.communication-calendar-agenda-time { width:170px; flex-shrink:0; font-size:.75rem; color:var(--communication-muted); }
.communication-calendar-status { flex-shrink:0; border:1px solid var(--communication-border); border-radius:5px; padding:.2rem .45rem; background:var(--communication-soft); color:var(--communication-text); font-size:.65rem; }
.communication-calendar-status[data-status=done] { color:#11734d; border-color:#63a88a; }
.communication-calendar-status[data-status=cancelled] { color:#a92e40; border-color:#b77b85; }
.communication-calendar-agenda-item.is-cancelled strong { text-decoration:line-through; }
body.theme-dark .communication-calendar-status[data-status=done] { color:#98e4b9; border-color:#63a88a; }
body.theme-dark .communication-calendar-status[data-status=cancelled] { color:#ffb1ba; border-color:#b77b85; }
body.theme-dark .communication-calendars .communication-calendar-agenda-item { box-shadow:none; }
.communication-calendar-dialog{width:min(820px,calc(100vw - 32px));max-width:none}.communication-calendar-dialog>.communication-section-heading{position:sticky;top:-28px;z-index:3;background:var(--communication-surface);padding:12px 0;border-bottom:1px solid var(--communication-border)}.communication-calendar-dialog label[for],.communication-calendar-upload{display:block;margin:14px 0 6px}.communication-calendar-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.communication-calendar-dialog .communication-check{display:flex;align-items:flex-start;gap:8px;margin:12px 0}.communication-calendar-dialog h5{font-size:1rem;margin:22px 0 12px}.communication-calendar-read .communication-details small,.communication-calendar-file small,.communication-calendar-history small{display:block;color:var(--communication-muted);font-size:.77rem;margin-top:5px}.communication-calendar-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin:7px 0;border:1px solid var(--communication-border);border-radius:8px;color:var(--communication-text)}.communication-calendar-coverages{display:grid;gap:14px}.communication-calendar-coverages>div{padding:12px;border:1px solid var(--communication-border);border-radius:10px}.communication-calendar-file,.communication-calendar-history article{padding:12px 0;border-bottom:1px solid var(--communication-border)}.communication-calendar-demand-links{display:grid;gap:10px}.communication-calendar-demand-links a{display:flex;gap:9px;align-items:center}.communication-calendar-history{margin-top:24px}.communication-calendar-upload input{margin-top:8px}.communication-calendar-dialog .communication-actions{flex-wrap:wrap;gap:8px}.communication-calendar-form .input-group{margin:8px 0}.communication-calendar-filter-options{margin-bottom:14px}

@media(max-width:991px) { .communication-calendar-toolbar { align-items:start; }.communication-calendar-period-fields { width:100%; justify-content:end; }.communication-calendar-filter-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.communication-calendar-filter-fields>div:first-child { grid-column:1/-1; } }
@media(max-width:767px) {
  .communication-calendars { padding:1rem; }
  .communication-calendar-tabs { gap:.25rem; }.communication-calendars .communication-calendar-tabs button { flex:1; padding:.5rem .35rem; font-size:.72rem; }
  .communication-calendar-period { width:100%; gap:.6rem; }.communication-calendars .communication-calendar-toolbar h5 { flex-basis:100%; font-size:.85rem; }
  .communication-calendar-period-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:.6rem; }
  .communication-calendar-month { width:100%; }
  .communication-calendar-toolbar .communication-calendar-month input[type=month] { width:100%; min-width:0; }
  .communication-calendar-filters { padding:.8rem; }.communication-calendar-filter-fields { grid-template-columns:minmax(0,1fr); }
  .communication-calendar-filter-actions>.communication-actions { margin-left:0; width:100%; }
  .communication-calendar-filter-actions .btn { flex:1 1 150px; }
  .communication-calendar-filter-options .input-group { flex-wrap:wrap; gap:.4rem; }.communication-calendar-filter-options .input-group>.form-control { min-width:120px; }.communication-calendar-filter-options .input-group>.form-select { width:100%; border-radius:5px; }
  .communication-calendar-loading { grid-template-columns:minmax(0,1fr); }.communication-calendar-loading>div:not(:first-of-type) { display:none; }
  .communication-calendars .communication-calendar-agenda-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; }
  .communication-calendar-agenda-item>.communication-calendar-agenda-time { width:auto; grid-column:1/-1; }
  .communication-calendars .communication-calendar-agenda-item>span:nth-child(2) { grid-column:1/-1; }
  .communication-calendar-status { width:fit-content; }
  .communication-calendars .communication-pagination { flex-wrap:wrap; gap:.6rem; }.communication-calendars .communication-pagination>div { display:flex; flex-wrap:wrap; gap:.5rem; }
  .communication-calendar-form-grid { grid-template-columns:minmax(0,1fr); }
  .communication-calendar-dialog { width:calc(100vw - 24px); }.communication-calendar-dialog .input-group .form-select { min-width:0; }.communication-calendar-dialog .input-group>.form-select { width:100%; border-radius:5px; }
  .communication-calendar-selected { overflow-wrap:anywhere; }.communication-disclosures .communication-section-heading { align-items:flex-start; }
  #main.communication-workspace .visitors-list-page__tab { flex:1 0 auto; min-width:84px; padding-left:10px; padding-right:10px; }
}
@media(prefers-reduced-motion:reduce) { .communication-calendar-loading span,.communication-calendar-loading strong { animation:none; } }

/* Dashboard follows the compact KPI, panel and typography scale of the Visitor Central. */
.communication-dashboard {
  --dashboard-title:var(--ictus-graphite,#293544);
  --dashboard-orange:var(--ictus-attention-fill,#f0643b);
  --dashboard-teal:var(--ictus-healthy-fill,#118f85);
  --dashboard-alert:#b43540;
  --dashboard-attention:#906000;
  padding:1.25rem;
}
.communication-dashboard-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.communication-dashboard-eyebrow { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.communication-dashboard .communication-dashboard-header h4 { color:var(--dashboard-title); font-size:1.05rem; font-weight:900; letter-spacing:0; margin:.15rem 0 0; }
.communication-dashboard-header-actions { display:flex; align-items:center; justify-content:end; flex-wrap:wrap; gap:.5rem; }
.communication-dashboard-body { display:flex; flex-direction:column; gap:.9rem; }
.communication-dashboard-caption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.4rem 1rem; font-size:.72rem; color:var(--communication-muted); }
.communication-dashboard-caption strong { color:var(--dashboard-title); }
.communication-dashboard-metrics,.communication-dashboard-loading { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; }
.communication-dashboard-metric,.communication-dashboard-skeleton { position:relative; min-width:0; min-height:112px; overflow:hidden; padding:.9rem 1rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-surface); box-shadow:0 3px 10px rgba(31,45,61,.035); }
.communication-dashboard-metric { --metric-accent:var(--dashboard-title); display:flex; flex-direction:column; color:var(--communication-text); text-decoration:none; }
.communication-dashboard-metric::before { content:''; position:absolute; height:3px; inset:0 0 auto; background:var(--metric-accent); }
.communication-dashboard-metric.is-teal { --metric-accent:var(--dashboard-teal); }
.communication-dashboard-metric.is-purple { --metric-accent:var(--dashboard-orange); }
.communication-dashboard-metric.is-amber { --metric-accent:var(--dashboard-attention); }
.communication-dashboard-metric.is-red { --metric-accent:var(--dashboard-alert); }
.communication-dashboard-metric:hover,.communication-dashboard-metric:focus-visible { border-color:var(--metric-accent); color:var(--communication-text); box-shadow:0 3px 12px rgba(31,45,61,.1); }
.communication-dashboard-metric>i { position:absolute; right:.85rem; top:.8rem; font-size:.95rem; color:var(--communication-muted); }
.communication-dashboard-metric>span { display:block; min-height:1.65rem; padding-right:1.2rem; color:var(--communication-muted); font-size:.68rem; font-weight:900; letter-spacing:.035em; line-height:1.2; text-transform:uppercase; overflow-wrap:anywhere; }
.communication-dashboard-metric>strong { display:block; font-size:1.75rem; font-weight:900; letter-spacing:0; line-height:1; margin:.45rem 0 .3rem; color:var(--metric-accent); }
.communication-dashboard .communication-dashboard-metric small { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:auto; color:var(--communication-muted); font-size:.72rem; font-weight:700; line-height:1.2; }
.communication-dashboard-context { display:flex; flex-wrap:wrap; align-items:start; justify-content:space-between; gap:.6rem 1rem; }
.communication-dashboard-note { flex:1 1 240px; min-width:0; color:var(--communication-muted); font-size:.74rem; }
.communication-dashboard-note summary { cursor:pointer; width:fit-content; }
.communication-dashboard-note summary:focus-visible { outline:3px solid var(--communication-text); outline-offset:3px; }
.communication-dashboard-note summary i { margin-right:.25rem; }
.communication-dashboard .communication-dashboard-note p { font-size:.74rem; line-height:1.5; margin-top:.5rem; max-width:650px; }
.communication-dashboard-today { display:inline-flex; align-items:center; flex-wrap:wrap; gap:.45rem; font-size:.74rem; font-weight:700; color:var(--communication-text); }
.communication-dashboard-horizon { display:grid; grid-template-columns:minmax(210px,1fr) auto; align-items:center; gap:.65rem 1.25rem; padding:.95rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); }
.communication-dashboard-horizon-copy strong { display:flex; align-items:center; gap:.5rem; color:var(--dashboard-title); font-size:.82rem; font-weight:900; }
.communication-dashboard .communication-dashboard-horizon small { display:block; color:var(--communication-muted); font-size:.72rem; line-height:1.4; }
.communication-dashboard-horizon-copy small { margin-top:.3rem; max-width:450px; }
.communication-dashboard-horizon-fields { display:flex; align-items:end; gap:.65rem; }
.communication-dashboard-horizon-fields>div { min-width:0; }
.communication-dashboard-horizon label { display:block; font-size:.72rem; font-weight:700; margin-bottom:.25rem; color:var(--communication-muted); }
.communication-dashboard-horizon .form-control { width:146px; }
.communication-dashboard-horizon .btn { white-space:nowrap; }
.communication-dashboard #communication-horizon-help { grid-column:1/-1; }
.communication-dashboard .communication-dashboard-filter-error { grid-column:1/-1; font-size:.78rem; color:var(--dashboard-alert); font-weight:700; }
.communication-dashboard-empty { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; padding:1rem; border:1px dashed var(--communication-border); border-radius:8px; background:var(--communication-soft); }
.communication-dashboard-empty>i { font-size:1.8rem; color:var(--communication-muted); }
.communication-dashboard-empty>div { flex:1 1 220px; min-width:0; }
.communication-dashboard .communication-dashboard-empty h5 { color:var(--dashboard-title); font-size:.88rem; font-weight:900; margin-bottom:.25rem; }
.communication-dashboard .communication-dashboard-empty p { font-size:.75rem; line-height:1.5; }
.communication-dashboard-panels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:.75rem; }
.communication-dashboard-panel { min-width:0; padding:.95rem; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-surface); box-shadow:0 3px 10px rgba(31,45,61,.035); }
.communication-dashboard-panel.is-wide { grid-column:1/-1; }
.communication-dashboard-panel>header { display:flex; align-items:start; justify-content:space-between; gap:.75rem; margin-bottom:.65rem; }
.communication-dashboard-panel>header>div { min-width:0; }
.communication-dashboard .communication-dashboard-panel h5 { display:flex; gap:.45rem; align-items:center; color:var(--dashboard-title); font-size:.88rem; font-weight:900; letter-spacing:0; margin:0 0 .2rem; }
.communication-dashboard-panel h5 i { flex-shrink:0; color:var(--communication-muted); }
.communication-dashboard-panel.is-overdue h5 i { color:var(--dashboard-alert); }
.communication-dashboard-panel.is-attention h5 i { color:var(--dashboard-attention); }
.communication-dashboard-panel>header p { color:var(--communication-muted); font-size:.72rem; font-weight:700; line-height:1.4; margin:0; }
.communication-dashboard-panel>header .btn { flex-shrink:0; font-size:.72rem; padding:.1rem 0 .1rem .2rem; min-height:26px; }
.communication-dashboard .communication-dashboard-panel-count { display:flex; align-items:center; gap:.4rem; margin:.6rem 0; color:var(--communication-muted); font-size:.72rem; }
.communication-dashboard-panel-count>span,.communication-dashboard-action-groups h6>span { display:inline-grid; place-items:center; padding:.2rem .4rem; min-width:24px; border-radius:5px; background:var(--communication-soft); color:var(--communication-text); font-size:.7rem; font-weight:900; }
.communication-dashboard-panel-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; padding:1.6rem .75rem; min-height:115px; border-radius:6px; background:var(--communication-soft); text-align:center; }
.communication-dashboard-panel-empty>i { font-size:1.4rem; color:var(--communication-muted); }
.communication-dashboard .communication-dashboard-panel-empty p { font-size:.75rem; line-height:1.5; }
.communication-dashboard-row { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; padding:.8rem 0; border-bottom:1px solid var(--communication-border); color:var(--communication-text); text-decoration:none; }
.communication-dashboard-row:last-of-type { border-bottom:0; }
.communication-dashboard-row:hover { color:var(--communication-text); background:var(--communication-soft); }
.communication-dashboard-row-main { flex:1; min-width:140px; overflow-wrap:anywhere; }
.communication-dashboard .communication-dashboard-row strong { color:var(--dashboard-title); font-size:.8rem; font-weight:800; }
.communication-dashboard .communication-dashboard-row small { display:block; margin-top:.2rem; font-size:.72rem; color:var(--communication-muted); line-height:1.4; }
.communication-dashboard-row>span { font-size:.72rem; color:var(--communication-muted); }
.communication-dashboard-row-side { min-width:90px; text-align:right; font-size:.72rem; color:var(--communication-muted); }
.communication-dashboard-row>i { color:var(--communication-muted); font-size:.75rem; }
.communication-dashboard-avatars { display:flex; align-items:center; justify-content:end; gap:4px; margin-top:5px; }
.communication-dashboard-avatars .communication-demand-avatar { width:24px; height:24px; font-size:.6rem; }
.communication-dashboard-progress { display:flex; align-items:center; gap:8px; margin:7px 0; }
.communication-dashboard-progress>div { width:85px; height:6px; border-radius:6px; overflow:hidden; background:var(--communication-soft); }
.communication-dashboard-progress>div>span { display:block; background:var(--dashboard-teal); height:100%; }
.communication-dashboard-progress small { margin:0; }
.communication-dashboard-pending { flex-basis:100%; padding:0; margin:0; list-style:none; }
.communication-dashboard-pending li { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.4rem; color:var(--communication-muted); font-size:.72rem; margin-top:.35rem; }
.communication-dashboard-pending strong { font-size:.65rem; color:var(--dashboard-attention); background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:4px; padding:.15rem .4rem; }
.communication-dashboard-pending .is-overdue strong { color:var(--dashboard-alert); }
.communication-dashboard-panels.is-expanded { grid-template-columns:minmax(0,1fr); }
.communication-dashboard-back .btn { font-size:.75rem; }
.communication-dashboard-action-groups { display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; margin-top:.9rem; }
.communication-dashboard-action-groups>section { min-width:0; padding:.65rem .8rem; border:1px solid var(--communication-border); border-radius:6px; }
.communication-dashboard-action-groups .communication-section-heading { gap:.5rem; margin-bottom:.5rem; }
.communication-dashboard .communication-dashboard-action-groups h6 { color:var(--dashboard-title); font-size:.75rem; font-weight:800; margin:0; display:flex; align-items:center; gap:.4rem; }
.communication-dashboard-action-groups .communication-section-heading .btn { font-size:.72rem; padding:0; }
.communication-dashboard-action-groups .communication-help { font-size:.72rem; }
.communication-dashboard-action-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-top:1rem; }
.communication-dashboard-skeleton>span,.communication-dashboard-skeleton>strong,.communication-dashboard-skeleton>small { display:block; background:var(--communication-soft); border-radius:4px; animation:entity-list-pulse 1.35s ease-in-out infinite; }
.communication-dashboard-skeleton>span { height:13px; width:72%; }
.communication-dashboard-skeleton>strong { height:28px; width:46%; margin:.8rem 0 .4rem; }
.communication-dashboard-skeleton>small { height:12px; width:82%; }
body.theme-dark .communication-dashboard { --dashboard-title:#edf4ff; --dashboard-orange:#ffad91; --dashboard-teal:#71d8ce; --dashboard-alert:#ffb1ba; --dashboard-attention:#f1c364; }
body.theme-dark .communication-dashboard-metric,body.theme-dark .communication-dashboard-panel { box-shadow:none; }
@media(max-width:1199px) { .communication-dashboard-metrics,.communication-dashboard-loading { grid-template-columns:repeat(3,minmax(0,1fr)); }.communication-dashboard-horizon { grid-template-columns:minmax(0,1fr); }.communication-dashboard-horizon-fields { justify-content:end; } }
@media(max-width:991px) { .communication-dashboard-panels { grid-template-columns:minmax(0,1fr); } }
@media(max-width:767px) {
  .communication-dashboard { padding:1rem; }
  .communication-dashboard-header { flex-wrap:wrap; align-items:center; gap:.75rem; }
  .communication-dashboard-header>div:first-child { flex:1 1 100%; }
  .communication-dashboard-header-actions { width:100%; justify-content:space-between; }
  .communication-dashboard-metrics,.communication-dashboard-loading { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .communication-dashboard-metric:last-child,.communication-dashboard-skeleton:last-child { grid-column:1/-1; }
  .communication-dashboard-metric { padding:.85rem; }
  .communication-dashboard-horizon { padding:.85rem; }
  .communication-dashboard-horizon-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .communication-dashboard-horizon .form-control { width:100%; }
  .communication-dashboard-horizon .btn { grid-column:1/-1; width:100%; }
  .communication-dashboard-row-side { text-align:left; }
  .communication-dashboard-avatars { justify-content:start; }
  .communication-dashboard .communication-pagination { flex-wrap:wrap; gap:.5rem; }
  .communication-dashboard .communication-pagination>div { display:flex; flex-wrap:wrap; gap:.5rem; }
}
@media(prefers-reduced-motion:reduce) { .communication-dashboard-skeleton>span,.communication-dashboard-skeleton>strong,.communication-dashboard-skeleton>small { animation:none; } }

/* Closing is an explicit review, using the same high-contrast page tokens. */
.communication-lifecycle { scroll-margin-top:100px; }
.communication-lifecycle-requirements { padding:18px; margin:16px 0; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:12px; color:var(--communication-text); }
.communication-lifecycle-requirements h6,.communication-lifecycle-form h6 { color:var(--communication-text); }
.communication-lifecycle-requirements li { margin:7px 0; font-size:.84rem; overflow-wrap:anywhere; }
.communication-lifecycle-delivery { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:11px 0; border-top:1px solid var(--communication-border); font-size:.84rem; }
.communication-lifecycle-delivery small { color:var(--communication-muted); }
.communication-lifecycle-form { margin:18px 0; }.communication-lifecycle-form label { margin:12px 0; }.communication-lifecycle-form .communication-check { display:flex; align-items:start; gap:12px; line-height:1.6; }.communication-lifecycle-form input[type=checkbox] { flex-shrink:0; }
.communication-lifecycle-history { margin-top:20px; border-top:1px solid var(--communication-border); padding-top:16px; }.communication-lifecycle-history article { padding:16px 0; border-bottom:1px solid var(--communication-border); }.communication-lifecycle-history strong { display:block; font-size:.83rem; }.communication-lifecycle-history small { color:var(--communication-muted); font-size:.75rem; }.communication-lifecycle-history p { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:8px; font-size:.83rem; }
@media(max-width:767px) { .communication-lifecycle .communication-section-heading { flex-wrap:wrap; }.communication-lifecycle .communication-actions .btn { width:100%; }.communication-lifecycle-requirements { padding:12px; }.communication-lifecycle .communication-pagination { flex-wrap:wrap; } }

/* Official copies remain distinct from private supporting attachments. */
.communication-drive-job { display:flex; gap:16px; align-items:center; justify-content:space-between; border:1px solid var(--communication-border); border-radius:12px; padding:16px; margin:14px 0; background:var(--communication-soft); color:var(--communication-text); }
.communication-drive-job>div { min-width:0; }.communication-drive-job strong,.communication-drive-job small,.communication-drive-artifact small { display:block; }.communication-drive-job small { margin-top:6px; color:var(--communication-muted); font-size:.78rem; }.communication-drive-job p { margin:8px 0; font-size:.83rem; }.communication-drive-artifact { padding:14px 0; border-bottom:1px solid var(--communication-border); overflow-wrap:anywhere; }.communication-drive-artifact small { margin:6px 0; color:var(--communication-muted); font-size:.75rem; }.communication-drive-hash { font-family:monospace; word-break:break-all; }.communication-drive-manifest { max-height:280px; overflow:auto; padding-left:22px; }.communication-drive-manifest li { margin:9px 0; font-size:.82rem; overflow-wrap:anywhere; }.communication-drive-manifest small { color:var(--communication-muted); }.communication-drive .communication-check,.communication-drive-connection .communication-check { display:flex; align-items:start; gap:12px; margin:14px 0; }.communication-drive input[type=checkbox],.communication-drive-connection input[type=checkbox] { flex-shrink:0; }.communication-drive h6 { color:var(--communication-text); }
@media(max-width:767px) { .communication-drive-job { flex-wrap:wrap; }.communication-drive-job .btn { width:100%; }.communication-drive .communication-section-heading { flex-wrap:wrap; }.communication-drive-connection .communication-actions .btn { width:100%; } }

.communication-assistance { margin: 1rem 0; }
.communication-assistant-question, .communication-assistant-proposal article { padding: 1rem 0; border-bottom: 1px solid var(--bs-border-color); }
.communication-assistant-question button { margin-top: .65rem; }
.communication-assistant-source, .communication-assistant-whatsapp { margin: 1rem 0; }
.communication-assistant-source dd { white-space: pre-wrap; overflow-wrap: anywhere; }
.communication-assistant-proposal { padding: 1rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; margin: 1rem 0; }
.communication-assistant-proposal label { display: block; width: 100%; margin-bottom: .7rem; }
.communication-assistant-step { display: grid; grid-template-columns: minmax(0,1fr) 160px; gap: .75rem; }
@media (max-width: 575px) { .communication-assistant-step { grid-template-columns: 1fr; } }

@media(prefers-reduced-motion:reduce) { .communication-demand-placeholder>div { animation:none; } }

/* Stage 15: compact demand detail, using the same records and permission gates. */
.communication-demand-dialog[open] { display:flex; flex-direction:column; height:min(920px,calc(100dvh - 48px)); overflow:hidden; }
.communication-demand-dialog-tools { position:relative; flex:0 0 auto; padding:11px 20px; gap:10px; }
.communication-demand-dialog-tools > span { display:flex; align-items:center; gap:8px; }
.communication-demand-dialog-tools .communication-actions { margin:0; gap:8px; }
.communication-demand-dialog-content { display:flex; flex-direction:column; flex:1; min-height:0; }
.communication-demand-dialog .communication-requests--embedded { display:flex; flex-direction:column; flex:1; min-height:0; padding:0; overflow:hidden; }
.communication-demand-detail-head { flex:0 0 auto; background:var(--communication-surface); border-bottom:1px solid var(--communication-border); }
.communication-demand-open-summary { margin:0; border:0; border-radius:0; padding:17px 22px 12px; }
.communication-demand-title-row { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; }
.communication-demand-title-row h4 { margin:0; min-width:0; overflow-wrap:anywhere; line-height:1.35; color:inherit; font-weight:700; }
.communication-demand-title-row .btn { flex-shrink:0; }
.communication-demand-open-tags { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; }
.communication-demand-open-summary dl { grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,1.2fr) minmax(0,1fr); gap:16px; margin:13px 0 0; }
.communication-demand-open-summary dl>div { min-width:0; padding-right:10px; border-right:1px solid currentColor; border-color:color-mix(in srgb,currentColor 20%,transparent); }
.communication-demand-open-summary dl>div:last-child { border-right:0; }
.communication-demand-open-summary dt { margin-bottom:5px; font-weight:500; font-size:.68rem; }
.communication-demand-open-summary dd { overflow-wrap:anywhere; font-size:.8rem; font-weight:600; line-height:1.5; }
.communication-demand-open-summary small { font-weight:400; font-size:.7rem; }
.communication-demand-open-summary p { margin-top:10px; font-size:.69rem; }
.communication-phase-action { display:block; background:transparent; color:inherit; border:0; text-decoration:underline; text-underline-offset:3px; padding:4px 0 0; font-size:.7rem; }
.communication-demand-open-summary .btn { color:inherit; border-color:currentColor; background:transparent; }
.communication-demand-open-summary .btn:hover { background:color-mix(in srgb,currentColor 12%,transparent); }
.communication-demand-open-summary .communication-demand-people ul { position:relative; margin-top:6px; padding:8px 12px 8px 22px; max-height:130px; overflow:auto; background:transparent; border:1px solid currentColor; border-radius:6px; }
.communication-demand-block-nav { margin:0; padding:0 18px; gap:6px; border:0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; }
.communication-demand-block-nav button { border-radius:0; border-bottom:3px solid transparent; flex:0 0 auto; padding:12px 8px 10px; font-size:.76rem; }
.communication-demand-block-nav button.is-active { color:var(--communication-text); border-bottom-color:#2888aa; background:var(--communication-soft); font-weight:600; }
.communication-demand-detail-scroll--embedded { min-height:0; overflow:auto; overscroll-behavior:contain; padding:18px 22px; scrollbar-gutter:stable; flex:1; }
.communication-demand-detail-scroll--embedded [tabindex="-1"] { scroll-margin-top:12px; }
.communication-demand-dialog .communication-form-block { padding:16px; margin-bottom:14px; border-radius:10px; }
.communication-demand-dialog .communication-collaboration { grid-template-columns:minmax(0,1.85fr) minmax(285px,1fr); gap:0 16px; }
.communication-demand-dialog .communication-collaboration-sidebar { position:sticky; top:0; max-height:calc(100dvh - 360px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-gutter:stable; padding-right:3px; }
.communication-demand-dialog .communication-collaboration-sidebar .communication-rich-editable { min-height:100px; max-height:220px; padding:11px; }
.communication-demand-dialog .communication-collaboration-sidebar .communication-edit-form { margin-top:0; }
.communication-demand-dialog .communication-collaboration-sidebar :is(label,.communication-help) { font-size:.72rem; }
.communication-detail-block > .communication-section-heading { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 12px; }
.communication-detail-block > .communication-section-heading > :first-child { flex:1; min-width:0; }
.communication-detail-block > .communication-section-heading h5 { font-size:.92rem; margin:0; color:var(--communication-text); }
.communication-detail-block > .communication-section-heading p { font-size:.74rem; margin:4px 0 0; }
.communication-detail-block-toggle { display:inline-flex; align-items:center; justify-content:center; width:32px; min-width:32px; height:32px; padding:0; border:1px solid var(--communication-border); border-radius:7px; color:var(--communication-text); background:var(--communication-surface); }
.communication-detail-block-toggle:hover { background:var(--communication-soft); }
.communication-detail-block--closed > .communication-section-heading { margin-bottom:0; }
.communication-detail-block-body[hidden] { display:none!important; }
.communication-demand-dialog .communication-briefing-audience { padding:12px 0; }
.communication-demand-dialog .communication-original-request { margin-top:12px; }
.communication-demand-dialog .communication-schedule-summary { padding:9px 0; margin-bottom:7px; font-size:.72rem; }
.communication-demand-dialog .communication-schedule-round { margin-top:10px; }
.communication-demand-dialog .communication-schedule-round-heading { padding:10px; gap:8px; font-size:.76rem; }
.communication-demand-dialog .communication-schedule-step { padding:10px; }
.communication-demand-dialog .communication-schedule-step-row { grid-template-columns:26px minmax(0,1fr) 46px 76px 85px 28px; gap:8px; }
.communication-demand-dialog .communication-step-title { font-size:.76rem; }
.communication-demand-dialog :is(.communication-step-duration,.communication-step-deadline,.communication-step-completed) { font-size:.67rem; }
.communication-demand-dialog :is(.communication-step-condition,.communication-step-review,.communication-step-window) { font-size:.7rem; line-height:1.6; margin-top:8px; }
.communication-demand-dialog :is(button,a,summary):focus-visible { outline:2px solid #2888aa; outline-offset:3px; }
@media(max-width:1199.98px) {
 .communication-demand-dialog .communication-collaboration { grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); }
 .communication-demand-dialog .communication-schedule-step-row { grid-template-columns:32px minmax(0,1fr) 80px; }
 .communication-demand-dialog .communication-step-person { grid-column:3; grid-row:1; justify-self:end; }
 .communication-demand-dialog .communication-step-title { grid-column:2; grid-row:1; }
 .communication-demand-dialog .communication-step-duration { grid-column:1; grid-row:2; }
 .communication-demand-dialog .communication-step-deadline { grid-column:2; grid-row:2; }
 .communication-demand-dialog .communication-step-completed { grid-column:3; grid-row:2; min-width:0; max-width:80px; }
}
@media(max-width:991.98px) {
 .communication-demand-dialog .communication-collaboration { display:block; }
 .communication-demand-dialog .communication-collaboration-sidebar { position:static; max-height:none; overflow:visible; padding:0; }
}
@media(max-width:767.98px) {
 .communication-demand-dialog[open] { height:100dvh; max-height:100dvh; width:100%; }
 .communication-demand-dialog-tools { padding:8px 12px; flex-wrap:nowrap; }
 .communication-demand-dialog-tools > span { font-size:.65rem; gap:5px; }
 .communication-demand-dialog-tools .btn { padding:5px 7px; font-size:.67rem; }
 .communication-demand-open-summary { padding:12px 14px 8px; }
 .communication-demand-dialog .communication-demand-title-row h4 { font-size:1.05rem; }
 .communication-demand-title-row { gap:8px; }
 .communication-demand-title-row .btn { font-size:.65rem; padding:4px 7px; }
 .communication-demand-open-summary dl { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 12px; margin-top:8px; }
 .communication-demand-open-summary dl>div:nth-child(2) { border-right:0; }
 .communication-demand-open-summary dd { font-size:.73rem; }
 .communication-demand-open-tags { margin-top:7px; }
 .communication-demand-open-summary :is(.communication-category-tag,.communication-deadline-tag) { font-size:.63rem; padding:4px 6px; }
 .communication-demand-open-summary p { margin-top:7px; }
 .communication-demand-block-nav { padding:0 8px; gap:2px; }
 .communication-demand-block-nav button { font-size:.69rem; padding:9px 7px 7px; }
 .communication-demand-detail-scroll--embedded { padding:12px; }
 .communication-demand-dialog .communication-form-block { padding:12px; }
 .communication-demand-dialog .communication-schedule-step-row { gap:8px; }
}
@media(max-height:620px) {
 .communication-demand-dialog .communication-requests--embedded { overflow:auto; }
 .communication-demand-detail-scroll--embedded { flex:none; overflow:visible; }
 .communication-demand-dialog .communication-collaboration-sidebar { max-height:none; overflow:visible; position:static; }
}
.communication-demand-detail-scroll:not(.communication-demand-detail-scroll--embedded) { display:contents; }
.communication-demand-dialog .communication-details>div { padding:9px 0; }
.communication-demand-dialog .communication-detail-block-body>p { font-size:.78rem; }
.communication-demand-dialog-tools .communication-actions { flex-wrap:nowrap; flex-shrink:0; }
.communication-demand-dialog > .communication-copy-feedback { flex:0 0 auto; padding:7px 20px; margin:0; font-size:.72rem; }
.communication-demand-open-summary .communication-demand-requester { display:flex; align-items:center; gap:9px; }
.communication-demand-requester > .communication-demand-avatar { flex:0 0 30px; margin:0; }
.communication-demand-requester > span:last-child { min-width:0; }

/* Stage 16: keep the calendar and its selected record in the same workspace. */
.communication-calendar-layout { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:18px; }
.communication-calendar-surface,.communication-calendar-panel-slot { min-width:0; }
.communication-calendar-panel-slot:empty { display:none; }
.communication-calendar-dialog[open] { display:flex; flex-direction:column; max-height:calc(100dvh - 60px); padding:0; overflow:hidden; border-radius:12px; }
.communication-calendar-dialog > .communication-calendar-panel-head { flex:0 0 auto; position:relative; top:auto; margin:0; padding:17px 18px; gap:12px; align-items:flex-start; }
.communication-calendar-panel-head > div { min-width:0; flex:1; }
.communication-calendar-dialog .communication-calendar-panel-head h4 { font-size:1.06rem; line-height:1.4; margin:7px 0 0; overflow-wrap:anywhere; color:var(--communication-text); }
.communication-calendar-panel-head > button { font-size:.7rem; padding:6px 9px; flex-shrink:0; }
.communication-calendar-panel-kicker { display:flex; align-items:center; gap:7px; }
.communication-calendar-panel-kicker i { width:9px; height:9px; border-radius:50%; background:#2888aa; box-shadow:0 0 0 3px var(--communication-soft); }
.communication-calendar-panel-body { padding:16px 18px; overflow:auto; min-height:0; flex:1; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-gutter:stable; }
.communication-calendar-dialog .communication-calendar-panel-footer { flex:0 0 auto; display:flex; justify-content:flex-end; gap:9px; margin:0; padding:12px 18px; background:var(--communication-surface); border-top:1px solid var(--communication-border); }
.communication-calendar-panel-footer .btn { font-size:.74rem; }
.communication-calendar-dialog .communication-calendar-panel-body h5 { font-size:.8rem; margin:18px 0 10px; }
.communication-calendar-dialog .communication-calendar-read .communication-details>div { padding:10px 0; display:block; }
.communication-calendar-read .communication-details dt { font-size:.68rem; margin-bottom:5px; }
.communication-calendar-read .communication-details dd { font-size:.78rem; margin:0; overflow-wrap:anywhere; }
.communication-calendar-dialog .communication-calendar-read .communication-actions { margin-bottom:12px; }
.communication-calendar-dialog .communication-calendar-read p,.communication-calendar-dialog .communication-calendar-read li { font-size:.78rem; line-height:1.7; }
.communication-calendar-coverage { padding:10px 12px; margin:9px 0; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:8px; }
.communication-calendar-coverage strong { color:var(--communication-text); font-size:.75rem; }
.communication-calendar-coverage :is(p,ul) { margin:5px 0 0; }
.communication-calendar-demand-links a { padding:10px 12px; border:1px solid var(--communication-border); border-radius:8px; font-size:.77rem; background:var(--communication-soft); }
.communication-calendar-dialog .communication-calendar-form-grid { grid-template-columns:minmax(0,1fr); gap:0; }
.communication-calendar-panel-body .communication-calendar-form { margin:0; }
.communication-calendar-panel-body :is(input,select,textarea) { font-size:.8rem; }
.communication-calendar-chip.is-selected,.communication-calendar-agenda-item.is-selected { outline:2px solid #2888aa; outline-offset:1px; background:var(--communication-soft); box-shadow:0 0 0 3px color-mix(in srgb,#2888aa 15%,transparent); }
.communication-calendars .is-today>.communication-calendar-day-number { background:#002a5c; color:#fff; font-weight:800; }
body.theme-dark .communication-calendars .is-today>.communication-calendar-day-number { background:#9be3f3; color:#102a3c; }
@media(min-width:1200px) {
 .communication-calendar-layout.has-panel { grid-template-columns:minmax(0,1fr) minmax(350px,410px); }
 .communication-calendar-panel-slot { position:sticky; top:128px; }
 .communication-calendar-side-panel[open] { position:relative; inset:auto; width:100%; height:calc(100dvh - 190px); max-height:980px; margin:0; z-index:5; box-shadow:0 6px 24px rgba(20,40,65,.08); }
 .has-panel .communication-calendar-grid { min-width:560px; }
 .has-panel .communication-calendar-toolbar { flex-wrap:wrap; }
 .has-panel .communication-calendar-period-fields { width:100%; justify-content:space-between; }
 .has-panel .communication-calendar-filter-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .has-panel .communication-calendar-filter-fields>div:first-child { grid-column:1/-1; }
 .has-panel .communication-calendar-day { min-height:108px; }
 .has-panel .communication-calendar-agenda-item { flex-wrap:wrap; }
 .has-panel .communication-calendar-agenda-time { width:auto; flex-basis:100%; }
}
@media(max-width:1199.98px) {
 .communication-calendar-side-panel[open] { position:fixed; inset:0; width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
}
@media(max-width:767.98px) {
 .communication-calendar-dialog[open] { position:fixed; inset:0; width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
 .communication-calendar-dialog > .communication-calendar-panel-head { padding:13px; }
 .communication-calendar-panel-body { padding:13px; }
 .communication-calendar-dialog .communication-calendar-panel-footer { padding:11px 13px; flex-wrap:wrap; }
}
/* Clip horizontal paint without creating an ancestor scroll container for the side panel. */
#main.communication-workspace.communication-workspace--calendar { overflow:clip; }
.communication-calendar-person { display:flex; align-items:center; gap:9px; padding:6px 0; }
.communication-calendar-person .communication-demand-avatar { flex:0 0 30px; margin:0; }
.communication-calendar-people,.communication-calendar-coverage ul { padding:0; list-style:none; }
.communication-calendar-copy { padding:12px; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); }

/* Stage 17: simultaneous review groups and an exact-version material panel. */
#main.communication-workspace.communication-workspace--approvals { overflow:clip; }
.communication-approvals-layout { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:18px; }
.communication-approvals-surface,.communication-review-panel-slot { min-width:0; }
.communication-review-group-note,.communication-review-group-empty { font-size:.73rem; color:var(--communication-muted); padding:8px 12px; margin:0; }
.communication-approvals .communication-review-list-group { margin:14px 0; scroll-margin-top:130px; }
.communication-review-group-heading { display:flex; align-items:center; gap:9px; width:100%; border:0; border-bottom:1px solid var(--communication-border); padding:12px; background:var(--communication-soft); color:var(--communication-text); text-align:left; font-size:.78rem; }
.communication-review-group-heading strong { flex:1; }
.communication-review-group-heading>span { padding:3px 8px; border:1px solid var(--communication-border); border-radius:6px; font-size:.7rem; }
.communication-review-row-material { display:flex; align-items:center; gap:10px; }
.communication-review-row-material>span:last-child { min-width:0; }
.communication-review-material-icon { display:grid; place-items:center; flex:0 0 34px; height:40px; border:1px solid var(--communication-border); border-radius:6px; background:var(--communication-soft); color:var(--communication-text); font-size:1.1rem; }
.communication-approvals .communication-review-row.is-selected { outline:2px solid #2888aa; outline-offset:-2px; background:var(--communication-soft); }
.communication-review-dialog[open] { display:flex; flex-direction:column; padding:0; overflow:hidden; border-radius:12px; max-height:calc(100dvh - 60px); }
.communication-approvals .communication-review-dialog>.communication-review-panel-head { position:relative; top:auto; margin:0; padding:17px 18px; gap:12px; align-items:flex-start; flex:0 0 auto; }
.communication-review-panel-head>div { min-width:0; flex:1; }
.communication-review-panel-head h4 { font-size:1.05rem; margin:7px 0 5px; overflow-wrap:anywhere; }
.communication-review-panel-head p { font-size:.74rem; margin:0; }
.communication-review-panel-head>button { flex-shrink:0; }
.communication-review-panel-body { padding:16px 18px; flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-gutter:stable; }
.communication-approvals .communication-review-layout { display:block; }
.communication-approvals .communication-review-material,.communication-approvals .communication-review-context { padding:0; border:0; background:none; }
.communication-review-panel-body :is(p,li,.communication-rich-content) { font-size:.77rem; line-height:1.7; }
.communication-review-panel-body .communication-details>div { padding:9px 0; display:block; }
.communication-review-panel-body .communication-details dt { font-size:.67rem; margin-bottom:5px; }
.communication-review-panel-body .communication-details dd { font-size:.77rem; margin:0; }
.communication-review-panel-body .communication-review-context { border-top:1px solid var(--communication-border); padding-top:16px; margin-top:18px; }
.communication-review-panel-body .communication-review-image { max-height:300px; width:100%; object-fit:contain; background:var(--communication-soft); border-radius:8px; }
.communication-review-panel-body pre { max-height:320px; overflow:auto; }
.communication-review-panel-body .communication-rich-editable { min-height:110px; max-height:250px; }
.communication-review-panel-body .communication-edit-form { margin:16px 0; padding:12px; border:1px solid var(--communication-border); border-radius:8px; }
.communication-review-panel-body :is(input,select,textarea) { font-size:.8rem; }
.communication-review-panel-footer { display:flex; flex:0 0 auto; justify-content:flex-end; flex-wrap:wrap; gap:9px; padding:12px 18px; border-top:1px solid var(--communication-border); background:var(--communication-surface); }
.communication-review-panel-footer .btn { font-size:.74rem; }
@media(min-width:1200px) {
 .communication-approvals-layout.has-panel { grid-template-columns:minmax(0,1fr) minmax(360px,440px); }
 .communication-review-panel-slot { position:sticky; top:128px; }
 .communication-review-dialog[open] { position:relative; inset:auto; width:100%; height:calc(100dvh - 190px); max-height:980px; margin:0; z-index:5; box-shadow:0 6px 24px rgba(20,40,65,.08); }
 .has-panel .communication-review-filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .has-panel .communication-review-filters>div:first-child { grid-column:1/-1; }
 .has-panel .communication-review-list-head,.communication-approvals .has-panel .communication-review-row { grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr) minmax(0,.8fr) minmax(0,1fr) 12px; gap:10px; padding:12px; }
}
@media(max-width:1199.98px) {
 .communication-review-dialog[open] { position:fixed; inset:0; width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
}
@media(max-width:767.98px) {
 .communication-approvals .communication-review-dialog>.communication-review-panel-head { padding:13px; }
 .communication-review-panel-body { padding:13px; }
 .communication-review-panel-footer { padding:11px 13px; }
}

/* Stage 18: management summaries reuse the canonical catalogs and forms. */
.communication-management>.communication-section-heading h4 { font-size:1.05rem; font-weight:900; margin:3px 0; }
.communication-management>.communication-section-heading p { font-size:.77rem; margin:5px 0 0; }
.communication-management-summary-filter { padding:14px; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); margin:18px 0; }
.communication-management-summary-filter label { display:block; color:var(--communication-muted); font-size:.72rem; font-weight:700; margin-bottom:6px; }
.communication-management-summary-filter .input-group-text { background:var(--communication-surface); color:var(--communication-muted); }
.communication-management-summaries { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
.communication-management-summary { min-width:0; border:1px solid var(--communication-border); border-radius:10px; background:var(--communication-surface); overflow:hidden; }
.communication-management-summary>header { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:16px; border-bottom:1px solid var(--communication-border); }
.communication-summary-icon { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:8px; background:var(--communication-soft); color:var(--communication-text); }
.communication-summary-title { flex:1; min-width:130px; color:var(--communication-text); text-decoration:none; }
.communication-management .communication-summary-title h5 { margin:0; font-size:.9rem; font-weight:800; color:var(--communication-text); }
.communication-summary-title small { display:block; margin-top:4px; font-size:.7rem; color:var(--communication-muted); }
.communication-management-summary header .btn { font-size:.7rem; }
.communication-summary-total { color:var(--communication-muted); font-size:.71rem; padding:12px 16px; margin:0; }
.communication-summary-total strong { color:var(--communication-text); }
.communication-summary-columns,.communication-summary-row { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) 78px 30px; gap:10px; align-items:center; padding:10px 16px; }
.communication-summary-columns { color:var(--communication-muted); background:var(--communication-soft); font-size:.65rem; font-weight:700; }
.communication-summary-row { border-bottom:1px solid var(--communication-border); min-height:74px; }
.communication-summary-row:last-of-type { border-bottom:0; }
.communication-summary-row>* { min-width:0; }
.communication-summary-person { display:flex; align-items:center; gap:9px; }
.communication-summary-person>div { min-width:0; overflow-wrap:anywhere; }
.communication-summary-person .communication-avatar { width:32px; height:32px; font-size:.65rem; }
.communication-summary-person strong { display:block; font-size:.76rem; color:var(--communication-text); font-weight:700; }
.communication-summary-person small { display:block; font-size:.68rem; line-height:1.5; margin-top:4px; color:var(--communication-muted); }
.communication-summary-person .communication-color { flex-shrink:0; width:14px; height:14px; border:1px solid var(--communication-border); border-radius:50%; }
.communication-summary-secondary { font-size:.7rem; line-height:1.5; overflow-wrap:anywhere; color:var(--communication-muted); }
.communication-summary-row>.communication-badge { justify-self:start; font-size:.6rem; padding:4px 6px; }
.communication-summary-row>.btn { padding:5px 6px; font-size:.7rem; }
.communication-management-summary footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:12px 16px; border-top:1px solid var(--communication-border); }
.communication-management-summary footer>a { font-size:.73rem; }
.communication-summary-pagination { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:.67rem; color:var(--communication-muted); }
.communication-summary-pagination .btn { font-size:.65rem; padding:4px 7px; }
.communication-summary-rule-link { display:flex; align-items:center; gap:10px; width:calc(100% - 24px); margin:0 12px 10px; padding:12px; border:1px solid var(--communication-border); border-radius:8px; color:var(--communication-text); background:var(--communication-surface); text-align:left; text-decoration:none; }
.communication-summary-rule-link>span { flex:1; min-width:0; }
.communication-summary-rule-link strong { display:block; font-size:.76rem; font-weight:700; }
.communication-summary-rule-link small { display:block; color:var(--communication-muted); font-size:.69rem; line-height:1.5; margin-top:4px; }
.communication-summary-rule-link:hover { background:var(--communication-soft); }
.communication-summary-loading { padding:14px 16px; display:grid; gap:10px; }
.communication-summary-loading>div { height:52px; border-radius:6px; background:var(--communication-soft); animation:entity-list-pulse 1.3s ease-in-out infinite; }
.communication-summary-error,.communication-summary-empty { margin:0; padding:18px 16px; font-size:.76rem; color:var(--communication-muted); }
.communication-summary-error strong { display:block; color:var(--communication-text); margin-bottom:7px; }
.communication-management .communication-management-complements-heading { font-size:.88rem; margin:24px 0 14px; }
.communication-management [id^=communication-management-] { scroll-margin-top:135px; }
@media(max-width:1199.98px) {
 .communication-management-summaries { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767.98px) {
 .communication-management { padding:1rem; }
 .communication-management-summary>header { padding:12px; }
 .communication-summary-columns { display:none; }
 .communication-summary-row { grid-template-columns:minmax(0,1fr) auto; padding:12px; gap:8px; }
 .communication-summary-person { grid-column:1; grid-row:1; }
 .communication-summary-secondary { grid-column:1; grid-row:2; padding-left:41px; }
 .communication-summary-row>.communication-badge { grid-column:2; grid-row:2; }
 .communication-summary-row>.btn { grid-column:2; grid-row:1; justify-self:end; }
 .communication-management-summary-filter .input-group { flex-wrap:wrap; }
 .communication-management-summary-filter .input-group>.form-control { min-width:0; flex-basis:calc(100% - 45px); }
 .communication-management-summary-filter .input-group>.btn { margin-top:7px; border-radius:5px; }
}
@media(prefers-reduced-motion:reduce) { .communication-summary-loading>div { animation:none; } }

/* Stage 19: operational dashboard, using the same current-workload calculations. */
.communication-dashboard-metric { min-height:145px; gap:4px; }
.communication-dashboard-metric>i { position:static; display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:var(--metric-accent); background:var(--communication-soft); margin-bottom:3px; }
.communication-dashboard-metric>span { padding:0; min-height:0; text-transform:none; letter-spacing:0; font-size:.73rem; line-height:1.4; }
.communication-dashboard-metric>strong { font-size:1.65rem; margin:.15rem 0 .3rem; }
.communication-dashboard-metric.is-purple { --metric-accent:#6941a5; }
body.theme-dark .communication-dashboard-metric.is-purple { --metric-accent:#cfb8ff; }
.communication-dashboard-shortcuts { display:grid; grid-template-columns:auto repeat(6,minmax(0,1fr)); align-items:stretch; gap:8px; }
.communication-dashboard-shortcuts>strong { display:flex; align-items:center; font-size:.76rem; color:var(--communication-text); padding-right:6px; }
.communication-dashboard-shortcuts>a { display:flex; gap:8px; align-items:center; padding:12px; min-width:0; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-surface); color:var(--communication-text); font-size:.73rem; text-decoration:none; }
.communication-dashboard-shortcuts>a>span { flex:1; min-width:0; overflow-wrap:anywhere; }
.communication-dashboard-shortcuts>a>i:last-child { font-size:.62rem; }
.communication-dashboard-shortcuts>a:hover { background:var(--communication-soft); }
.communication-dashboard .communication-dashboard-row-main { min-width:0; }
.communication-dashboard-date-marker { flex:0 0 42px; width:42px; min-height:48px; padding:6px 3px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:8px; background:var(--communication-soft); color:var(--dashboard-title); line-height:1.1; }
.communication-dashboard-date-marker>strong { font-size:1rem; }
.communication-dashboard .communication-dashboard-date-marker>small { font-size:.62rem; text-transform:uppercase; margin:3px 0 0; color:var(--communication-muted); }
.communication-dashboard .communication-dashboard-row.is-delivery { gap:10px; }
.communication-dashboard-row.is-delivery .communication-dashboard-row-side { max-width:140px; }
.communication-dashboard-row.is-delivery .communication-dashboard-row-side>small { font-size:.66rem; }
.communication-dashboard-status { display:inline-flex; padding:4px 7px; border-radius:6px; background:var(--communication-soft); color:var(--communication-muted); font-size:.64rem; font-weight:700; border:1px solid var(--communication-border); }
.communication-dashboard-status.is-overdue { color:var(--dashboard-alert); }
.communication-dashboard-status.is-dueToday,.communication-dashboard-status.is-attention { color:var(--dashboard-attention); }
.communication-dashboard-agenda-day { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid var(--communication-border); }
.communication-dashboard-agenda-day:last-of-type { border-bottom:0; }
.communication-dashboard-date-marker.is-agenda { min-height:64px; align-self:start; }
.communication-dashboard .communication-dashboard-agenda-item { padding:7px 0; gap:8px; }
.communication-dashboard-agenda-item:first-child { padding-top:0; }
.communication-dashboard-agenda-dot { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--dashboard-title); }
.communication-dashboard-agenda-item.is-capture .communication-dashboard-agenda-dot { background:var(--dashboard-teal); }
.communication-dashboard-agenda-item.is-disclosure .communication-dashboard-agenda-dot { background:var(--dashboard-attention); }
.communication-dashboard-agenda-item.is-meeting .communication-dashboard-agenda-dot { background:#8064ba; }
.communication-dashboard .communication-dashboard-agenda-item strong { font-size:.77rem; }
.communication-dashboard .communication-dashboard-agenda-item small { font-size:.68rem; }
.communication-dashboard-author { width:30px; height:30px; flex:0 0 30px; font-size:.63rem; }
.communication-dashboard .communication-dashboard-row.is-update { padding-left:12px; border-left:2px solid var(--communication-border); margin-left:5px; }
.communication-dashboard-row.is-update .communication-dashboard-row-side { font-size:.67rem; }
.communication-dashboard-action-groups>section { padding:8px 0; border:0; border-top:1px solid var(--communication-border); border-radius:0; }
.communication-dashboard-action-groups .communication-dashboard-row { gap:8px; }
.communication-dashboard-action-person .communication-demand-avatar { width:25px; height:25px; font-size:.6rem; }
.communication-dashboard-return { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 1rem 0; color:var(--communication-muted); font-size:.74rem; }
.communication-dashboard-return .btn { display:inline-flex; align-items:center; gap:7px; }
@media(max-width:1199.98px) { .communication-dashboard-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); }.communication-dashboard-shortcuts>strong { grid-column:1/-1; } }
@media(max-width:767.98px) {
 .communication-dashboard-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .communication-dashboard .communication-dashboard-row.is-delivery { display:grid; grid-template-columns:42px minmax(0,1fr) 12px; }
 .communication-dashboard-row.is-delivery .communication-dashboard-row-side { grid-column:2; grid-row:2; max-width:none; display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
 .communication-dashboard-row.is-delivery>.bi { grid-column:3; grid-row:1; }
 .communication-dashboard-row.is-delivery .communication-dashboard-avatars { margin-top:0; }
 .communication-dashboard-row.is-update .communication-dashboard-row-side { flex-basis:100%; padding-left:40px; }
 .communication-dashboard-row.is-production .communication-dashboard-row-side { min-width:75px; }
 .communication-dashboard-row.is-production .communication-dashboard-progress>div { width:55px; }
}

/* Stage 20: preferences stay personal, including for read-only roles. */
.communication-personal { margin:10px 0; color:var(--communication-text); }
.communication-personal-actions,.communication-personal-recuts { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.communication-personal-actions .btn { display:inline-flex; align-items:center; gap:7px; }
.communication-personal-actions>small { font-size:.72rem; color:var(--communication-muted); }
.communication-personal-recuts { margin:12px 0 18px; }
.communication-personal-recuts>button { padding:7px 12px; border:1px solid var(--communication-border); border-radius:7px; background:var(--communication-surface); color:var(--communication-text); font-size:.75rem; }
.communication-personal-recuts>button.is-active { background:var(--communication-soft); border-color:var(--communication-text); font-weight:800; }
.communication-personal-star { border:0; background:transparent; color:var(--communication-muted); padding:4px 6px; }
.communication-personal-star.is-favorite { color:#986400; }
body.theme-dark .communication-personal-star.is-favorite { color:#f6cd69; }
.communication-personal-star:focus-visible { outline:2px solid var(--communication-text); outline-offset:2px; border-radius:4px; }
.communication-personal-follow { padding:14px; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); font-size:.77rem; }
.communication-personal-follow>p,.communication-personal-follow>small { display:block; margin:8px 0; color:var(--communication-muted); font-size:.74rem; }
.communication-personal-follow>label { display:inline-flex; align-items:center; gap:7px; margin:8px 18px 8px 0; }
.communication-personal-follow .communication-actions { margin-top:12px; }
.communication-demand-card-title>.communication-personal-star { float:right; }
@media(max-width:767.98px) { .communication-personal-follow>label { display:flex; }.communication-personal-actions .btn { font-size:.72rem; } }
.communication-personal-follow>label>.form-check-input { float:none; margin:0; flex:0 0 14px; width:14px; height:14px; }

/* Stage 21 — conversation and authorized file cards. */
.communication-asset-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,265px),1fr)); gap:12px; margin:16px 0; }
.communication-asset-grid .communication-asset-card { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; min-width:0; padding:14px; border:1px solid var(--communication-border); border-radius:10px; background:var(--communication-surface); }
.communication-asset-card > i,.communication-asset-visual { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; background:var(--communication-soft); color:var(--communication-text); border-radius:9px; font-size:1.45rem; overflow:hidden; }
.communication-asset-visual img { width:100%; height:100%; object-fit:cover; }
.communication-asset-card[data-file-kind="pdf"] .communication-asset-visual { color:#d83247; }
.communication-asset-grid .communication-asset-card > .communication-asset-info { flex:1; min-width:0; }
.communication-asset-grid .communication-asset-card > .communication-actions { flex:1 1 100%; max-width:none; justify-content:flex-start; padding-top:8px; border-top:1px solid var(--communication-border); }
.communication-conversation-header { display:flex; align-items:center; gap:10px; min-width:0; }
.communication-conversation-avatar { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:50%; background:var(--communication-soft); color:var(--communication-text); border:1px solid var(--communication-border); font-size:.7rem; font-weight:700; }
.communication-conversation-header .communication-comment-author { margin:0; min-width:0; overflow-wrap:anywhere; }
.communication-comment > .communication-audience-label { display:flex; gap:6px; margin:9px 0 0 44px; }
.communication-comment .communication-rich-content { font-size:.8rem; line-height:1.65; margin:12px 0; }
.communication-conversation-actions { display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; margin-top:8px; }
.communication-conversation-actions .btn,.communication-comment-reaction .btn { display:inline-flex; align-items:center; gap:6px; color:var(--communication-text); text-decoration:none; }
.communication-comment-reaction { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size:.72rem; }
.communication-comment-reaction button[aria-pressed="true"] { color:var(--communication-text); background:var(--communication-soft); font-weight:700; }
.communication-comment-reaction details { position:relative; max-width:100%; }
.communication-comment-reaction ul { padding:8px 8px 8px 22px; margin:6px 0; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-surface); max-height:160px; overflow:auto; overflow-wrap:anywhere; }
.communication-comment-attachments .communication-comment-attachment { display:flex; text-align:left; gap:10px; align-items:center; width:100%; min-width:0; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-surface); color:var(--communication-text); padding:10px; }
.communication-comment-attachment > i { font-size:1.25rem; color:var(--communication-text); }
.communication-comment-attachment span { min-width:0; overflow-wrap:anywhere; }
.communication-comment-attachment strong,.communication-comment-attachment small { display:block; font-size:.72rem; }
.communication-comment-attachment small { color:var(--communication-muted); margin-top:4px; }
.communication-emoji-picker { display:flex; flex-wrap:wrap; gap:6px; padding:8px; border-bottom:1px solid var(--communication-border); background:var(--communication-soft); }
.communication-emoji-picker[hidden] { display:none; }
.communication-emoji-picker button { border:1px solid var(--communication-border); background:var(--communication-surface); padding:5px 9px; border-radius:6px; font-size:1.1rem; }
.communication-rich-editor button:focus-visible,.communication-comment-reaction summary:focus-visible { outline:2px solid var(--communication-text); outline-offset:2px; }
.communication-file-preview video { display:block; max-width:100%; max-height:60dvh; margin:12px auto; }
.communication-file-preview audio { width:100%; margin:12px 0; }
.communication-file-preview canvas { display:block; max-width:100%; height:auto; margin:12px auto; border:1px solid var(--communication-border); }
.communication-file-preview > .communication-actions { margin-bottom:12px; }
.communication-review-comment .communication-rich-content { margin:12px 0; }
.communication-asset-grid .communication-support-file > .communication-asset-visual { flex:0 0 44px; font-size:1.45rem; }
.communication-asset-grid .communication-asset-card > .communication-asset-info,.communication-asset-grid .communication-support-link > div { flex:1 1 calc(100% - 56px); }
.communication-asset-info > strong { display:block; overflow-wrap:anywhere; }
.communication-asset-card .btn { max-width:100%; white-space:normal; text-align:left; }

.communication-comment-composer { margin:12px 0; }
.communication-comment-composer > summary { color:var(--communication-text); font-size:.8rem; font-weight:600; margin-bottom:12px; }
/* Stage 22 — shared library, same access rules as the originating demand/review. */
.communication-library-filters { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:16px 0; margin:10px 0 20px; border-bottom:1px solid var(--communication-border); }
.communication-library-search { flex:1 1 280px; }
.communication-library-filters > select { width:auto; flex:0 1 190px; }
.communication-library-filter-panel { flex:1 1 100%; padding:20px; margin-top:8px; background:var(--communication-soft); border:1px solid var(--communication-border); border-radius:10px; }
.communication-library-filter-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:14px; margin-bottom:16px; }
.communication-library-filter-fields label,.communication-library-filter-fields legend { font-size:.76rem; font-weight:600; margin-bottom:5px; }
.communication-library-filter-fields fieldset { min-width:0; }
.communication-library-filter-fields fieldset details { font-size:.72rem; margin-top:8px; }
.communication-library-filter-fields fieldset .input-group { margin-top:10px; }
.communication-library-summary { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:8px; font-size:.83rem; color:var(--communication-muted); }
.communication-library-summary strong { color:var(--communication-text); }
.communication-library-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr)); gap:18px; margin-top:20px; }
.communication-library-item { display:flex; flex-direction:column; min-width:0; border:1px solid var(--communication-border); border-radius:12px; overflow:hidden; background:var(--communication-surface); }
.communication-library-visual { display:grid; place-items:center; position:relative; min-width:0; height:126px; background:var(--communication-soft); border-bottom:1px solid var(--communication-border); }
.communication-library-visual > i { color:var(--communication-text); opacity:.8; font-size:2.7rem; }
.communication-library-item[data-type="pdf"] .communication-library-visual > i { color:#d83247; }
.communication-library-visual img { width:100%; height:100%; object-fit:contain; }
.communication-library-format { position:absolute; right:10px; bottom:8px; padding:3px 7px; border:1px solid var(--communication-border); border-radius:5px; background:var(--communication-surface); color:var(--communication-text); font-size:.6rem; font-weight:700; }
.communication-library-item-info { padding:16px; flex:1; min-width:0; overflow-wrap:anywhere; }
.communication-library-origin { display:block; font-size:.65rem; color:var(--communication-muted); margin-bottom:9px; }
.communication-library-item h5 { font-size:.95rem; line-height:1.5; margin-bottom:8px; }
.communication-library-item-info > small { display:block; font-size:.7rem; color:var(--communication-muted); margin-top:8px; }
.communication-library-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.communication-library-badges .communication-badge { padding:3px 7px; font-size:.64rem; }
.communication-library-item-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:0 16px; padding:12px 0; border-top:1px solid var(--communication-border); }
.communication-library-item-actions .btn { max-width:100%; white-space:normal; font-size:.72rem; }
.communication-library-items.is-list { grid-template-columns:minmax(0,1fr); gap:10px; }
.communication-library-items.is-list .communication-library-item { display:grid; grid-template-columns:100px minmax(0,1fr) minmax(180px,240px); align-items:center; }
.communication-library-items.is-list .communication-library-visual { align-self:stretch; height:auto; min-height:120px; border-bottom:0; border-right:1px solid var(--communication-border); }
.communication-library-items.is-list .communication-library-item-actions { border-top:0; margin:0; padding:16px; }
.communication-library .communication-file-preview { width:min(900px,calc(100% - 32px)); }
@media(max-width:600px) { .communication-library-filter-panel { padding:12px; } .communication-library-items.is-list .communication-library-item { grid-template-columns:64px minmax(0,1fr); } .communication-library-items.is-list .communication-library-item-actions { grid-column:1/-1; border-top:1px solid var(--communication-border); padding:12px; } .communication-library-items.is-list .communication-library-visual { min-height:100px; } .communication-library-items.is-list .communication-library-format { right:4px; bottom:5px; font-size:.5rem; padding:2px; } .communication-library-filters > select { flex:1 1 130px; } }
/* Stage 23: historical weekly figures are separate from the live portfolio. */
.communication-weekly { margin:24px 0; border:1px solid var(--communication-border); border-radius:12px; padding:22px; background:var(--communication-surface); color:var(--communication-text); }
.communication-weekly-controls { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; margin:18px 0; }
.communication-weekly-controls label { font-size:.75rem; font-weight:600; }
.communication-weekly-controls input { margin-top:6px; }
.communication-weekly-controls .communication-actions { flex:1 1 100%; }
.communication-weekly-period { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:.8rem; margin:12px 0; }
.communication-weekly-coverage { padding:14px; margin:16px 0; border:1px solid var(--communication-border); border-radius:8px; background:var(--communication-soft); font-size:.8rem; }
.communication-weekly-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:20px; border:1px solid var(--communication-border); border-radius:10px; overflow:hidden; }
.communication-weekly-metrics > article { display:flex; flex-direction:column; gap:10px; min-width:0; padding:18px; border-right:1px solid var(--communication-border); }
.communication-weekly-metrics > article:last-child { border-right:0; }
.communication-weekly-metrics > article > span { font-size:.78rem; font-weight:600; }
.communication-weekly .communication-weekly-count { align-self:flex-start; background:transparent; border:0; padding:0; font-size:1.9rem; font-weight:700; color:var(--communication-text); text-decoration:underline; text-underline-offset:5px; }
.communication-weekly-count:disabled { text-decoration:none; opacity:.65; }
.communication-weekly-count:focus-visible { outline:2px solid var(--communication-text); outline-offset:4px; }
.communication-weekly-metrics small { color:var(--communication-muted); font-size:.71rem; line-height:1.65; overflow-wrap:anywhere; }
.communication-weekly-comparison { display:flex; align-items:center; gap:6px; margin-top:auto; padding-top:6px; font-size:.75rem; color:var(--communication-text); }
.communication-weekly-comparison.is-unavailable { color:var(--communication-muted); }
.communication-weekly-scope { margin-top:14px!important; font-size:.72rem!important; }
.communication-weekly-detail { margin-top:20px; padding-top:18px; border-top:1px solid var(--communication-border); }
@media(max-width:900px) { .communication-weekly-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .communication-weekly-metrics > article { border-bottom:1px solid var(--communication-border); } .communication-weekly-metrics > article:nth-child(2n) { border-right:0; } .communication-weekly-metrics > article:nth-last-child(-n+2) { border-bottom:0; } }
@media(max-width:420px) { .communication-weekly { padding:14px; } .communication-weekly-metrics { grid-template-columns:minmax(0,1fr); } .communication-weekly-metrics > article { border-right:0; border-bottom:1px solid var(--communication-border)!important; padding:14px; } .communication-weekly-metrics > article:last-child { border-bottom:0!important; } }
