/* Gestion: shared visual rules, applied after domain layouts. */
.ip-workspace-body {
 --ip-workspace-sidebar-width:232px; --ip-workspace-sidebar-collapsed:64px;
 --ip-workspace-topbar-height:64px; --ip-workspace-gutter:20px;
 --ip-control-target:36px; --ip-button-height:36px;
 --ip-input-height:40px; --ip-input-padding:8px 12px; --ip-input-radius:10px;
 --ip-switch-width:40px; --ip-switch-height:22px; --ip-switch-thumb:16px; --ip-switch-travel:18px;
 --ip-visibility-width:44px; --ip-panel-padding:20px; --ip-panel-gap:16px;
 --ip-card-radius:var(--ip-radius-lg); --ip-panel-radius:var(--ip-radius-lg);
 --ip-type-title:1.5rem; --ip-type-section:1rem;
 --ip-workspace-sidebar-bg:var(--ip-color-surface-subtle);
 font-family:var(--ip-font-family); font-size:var(--ip-type-small); line-height:1.5;
}
.ip-workspace-body .ip-shell-sidebar { box-shadow:none; border-right:1px solid var(--ip-color-border); }
.ip-workspace-body .ip-shell-sidebar__brand { border:0; padding:12px; }
.ip-workspace-body .ip-shell-sidebar__brand img { width:100px; height:36px; }
.ip-workspace-body .ip-shell-sidebar__brand > a > span { display:none; }
.ip-workspace-body .ip-shell-sidebar__toggle { display:none; }
.ip-workspace-body .ip-shell-sidebar__scroll { padding:12px; }
.ip-workspace-body .ip-shell-nav__title { font-size:var(--ip-type-caption); font-weight:500; letter-spacing:.04em; margin:0 10px 8px; }
.ip-workspace-body .ip-shell-nav__group { gap:4px; }
.ip-workspace-body .ip-shell-nav__link { line-height:20px; padding:8px 10px; min-height:36px; font-size:var(--ip-type-small); font-weight:500; border-radius:8px; }
.ip-workspace-body .ip-shell-nav__link.is-active { background:var(--ip-color-action-soft); color:var(--ip-color-text); font-weight:600; }
.ip-workspace-body .ip-shell-nav__link.is-active::before { left:-12px; width:3px; background:var(--ip-color-action); }
.ip-workspace-body .ip-shell-nav__link:hover .ip-shell-nav__icon,
.ip-workspace-body .ip-shell-nav__link.is-active .ip-shell-nav__icon { color:var(--ip-color-action); }
.ip-workspace-body .ip-shell-nav__section + .ip-shell-nav__section { margin-top:20px; }
.ip-workspace-body .ip-shell-sidebar__footer { margin-top:auto; padding:12px; }
.ip-workspace-body .ip-shell-user__copy small { display:none; }
.ip-workspace-body .ip-workspace-topbar { padding-inline:var(--ip-workspace-gutter); background:var(--ip-color-surface); backdrop-filter:none; border:0; border-bottom:1px solid var(--ip-color-border); }
.ip-workspace-body .ip-workspace-topbar__context > div { display:flex; gap:12px; align-items:center; }
.ip-workspace-body .ip-workspace-topbar__eyebrow { font-size:var(--ip-type-small); text-transform:none; letter-spacing:0; font-weight:400; }
.ip-workspace-body .ip-workspace-topbar__eyebrow::after { content:'/'; margin-left:12px; color:var(--ip-color-border-strong); }
.ip-workspace-body .ip-workspace-topbar__title { font-size:var(--ip-type-section); font-weight:650; }
.ip-workspace-body .ip-shell__main { padding:calc(var(--ip-workspace-topbar-height) + var(--ip-workspace-gutter)) var(--ip-workspace-gutter) var(--ip-workspace-gutter); }
.ip-workspace-body .ip-shell__content { width:100%; max-width:none; margin-inline:auto; padding:0; }
.ip-workspace-body .ip-workspace-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 20px; padding:0; flex-direction:row; text-align:left; }
.ip-workspace-body .ip-workspace-heading h1,
.ip-workspace-body .ip-workspace-head h1,
.ip-workspace-body .ip-communication-heading h1 { font-size:var(--ip-type-title); font-weight:650; line-height:1.3333; letter-spacing:-.025em; margin:0; }
.ip-workspace-body .ip-workspace-head h1 + p { margin:8px 0 0; font-size:var(--ip-type-small); color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-workspace-head__meta { max-width:64ch; }
.ip-workspace-body :is(.ip-profile-card__head,.ip-managed-form__heading) h2 { font-size:var(--ip-type-section); line-height:1.4; font-weight:650; letter-spacing:-.02em; }
.ip-workspace-body :is(.ip-profile-card__head,.ip-managed-form__heading) p { font-size:var(--ip-type-small); max-width:65ch; margin-top:8px; }
.ip-workspace-body :is(.ip-workspace-eyebrow,.ip-profile-card__eyebrow,.ip-managed-form__eyebrow) { font-size:var(--ip-type-caption); font-weight:500; letter-spacing:.04em; }
.ip-workspace-body .ip-button { min-height:var(--ip-button-height); font-size:var(--ip-type-small); font-weight:600; padding:7px 12px; gap:8px; border-radius:var(--ip-button-radius); box-shadow:none; }
.ip-workspace-body .ip-button--primary { background:var(--ip-color-action); color:var(--ip-color-on-action); }
.ip-workspace-body .ip-button-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.ip-workspace-body .ip-workspace-head .ip-button-row { margin:0; }
.ip-workspace-body :is(.ip-profile-card,.ip-workspace-panel,.ip-action-card,.ip-managed-form > .ip-profile-fieldset) { border-radius:var(--ip-panel-radius); box-shadow:none; border:1px solid var(--ip-color-border); padding:var(--ip-panel-padding); background:var(--ip-color-surface); }
.ip-workspace-body :is(.ip-profile-card,.ip-action-card) .ip-profile-card { padding:0; border:0; box-shadow:none; }
.ip-workspace-body .ip-managed-form > .ip-profile-fieldset > legend { float:left; width:100%; margin:0 0 20px; font-size:var(--ip-type-section); font-weight:650; }
.ip-workspace-body .ip-managed-form > .ip-profile-fieldset > legend + * { clear:both; }
.ip-workspace-body :is(.ip-managed-form,.ip-profile-form,.ip-group-workspace,.ip-business-fields) :is(.ip-form-field label,.ip-field-label) { font-size:var(--ip-type-small); font-weight:600; margin-bottom:8px; }
.ip-workspace-body .ip-input,
.ip-workspace-body .ip-managed-form .ip-form-field :is(input,select,textarea) { min-height:var(--ip-input-height); border-radius:var(--ip-input-radius); padding:var(--ip-input-padding); font-size:var(--ip-type-small); border:1px solid var(--ip-color-border-strong); background:var(--ip-color-surface); color:var(--ip-color-text); box-shadow:none; line-height:1.5; }
.ip-workspace-body .ip-input--title { font-size:var(--ip-type-small); font-weight:600; }
.ip-workspace-body .ip-input:focus { border-color:var(--ip-color-action); outline:0; box-shadow:var(--ip-focus-ring); }
.ip-workspace-body :is(.ip-form-field__hint,.ip-profile-media-gallery-hint,.ip-field-help) { font-size:var(--ip-type-small); line-height:1.5; color:var(--ip-color-text-muted); }
.ip-workspace-body :is(.ip-profile-fields-grid,.ip-profile-form-columns,.ip-managed-studio,.ip-profile-account-layout) { gap:var(--ip-panel-gap); }
.ip-workspace-body .ip-managed-studio { grid-template-columns:minmax(0,1fr) 300px; align-items:start; }
.ip-workspace-body .ip-managed-studio--new { grid-template-columns:minmax(0,1fr); }
.ip-workspace-body .ip-managed-studio__aside { padding:20px; gap:16px; top:calc(var(--ip-workspace-topbar-height) + 24px); }
.ip-workspace-body .ip-managed-studio__aside h2 { font-size:var(--ip-type-section); margin:0; }
.ip-workspace-body .ip-managed-studio__aside > :is(p,form) { margin:0; }
.ip-workspace-body .ip-managed-form { gap:16px; }
.ip-workspace-body .ip-profile-section + .ip-profile-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--ip-color-border); }
.ip-workspace-body :is(.ip-form-error,.ip-form-success,.ip-form-notice) { font-size:var(--ip-type-small); line-height:1.5; border-radius:12px; }
.ip-workspace-body .ip-profile-card__head { margin-bottom:16px; }
.ip-workspace-body .ip-profile-account-layout { display:block; max-width:100%; }
.ip-workspace-body .ip-profile-account-layout > form { max-width:100%; }
.ip-workspace-body .ip-workspace-heading { margin:0 0 20px; }
.ip-workspace-body :is(.ip-profile-tabs,.ip-application-tabs) { gap:4px; padding:4px; border:0; background:var(--ip-color-surface-related); border-radius:10px; margin-bottom:20px; }
.ip-workspace-body .ip-profile-workspace > .ip-profile-tabs { margin-bottom:0; }
.ip-workspace-body .ip-applications > .ip-application-tabs { margin-bottom:0; min-width:0; max-width:100%; flex-wrap:nowrap; overflow-x:auto; }
.ip-workspace-body .ip-application-tabs > a { flex:0 0 auto; white-space:nowrap; padding-inline:12px; }
.ip-workspace-body :is(.ip-profile-tabs__button,.ip-application-tab) { --ip-button-radius:8px; min-height:36px; padding:7px 12px; border:0; border-radius:var(--ip-button-radius); font-size:var(--ip-type-small); font-weight:600; }
.ip-workspace-body :is(.ip-profile-tabs__button[aria-selected="true"],.ip-application-tab[aria-current="page"]) { background:var(--ip-color-surface); color:var(--ip-color-action); box-shadow:var(--ip-shadow-sm); }
.ip-workspace-body .ip-publications-table { font-size:var(--ip-type-small); }
.ip-workspace-body .ip-publications-table :is(th,td) { padding:12px 16px; }
.ip-workspace-body .ip-publications-table th { text-transform:none; font-size:var(--ip-type-caption); letter-spacing:0; font-weight:600; }
.ip-workspace-body .ip-publication-row__actions { gap:4px; }
.ip-workspace-body .ip-collaboration-row { padding:16px 0; border-radius:0; border:0; border-bottom:1px solid var(--ip-color-border); box-shadow:none; }
.ip-workspace-body .ip-collaboration-row:last-child { border-bottom:0; }
.ip-workspace-body .ip-profile-day { border-radius:10px; }
.ip-workspace-body dialog { border-radius:16px; box-shadow:0 24px 80px rgb(0 0 0 / .18); }
.ip-workspace-body dialog::backdrop { background:rgb(20 20 25 / .32); backdrop-filter:blur(3px); }
.ip-workspace-body :is(.ip-vol-apply-dialog__header,.ip-collection-dialog__header) { padding:20px; gap:16px; border-bottom:1px solid var(--ip-color-border); }
.ip-workspace-body :is(.ip-vol-apply-dialog__header,.ip-collection-dialog__header) h2 { font-size:var(--ip-type-title-small); font-weight:650; letter-spacing:-.025em; line-height:1.35; }
.ip-workspace-body :is(.ip-vol-apply-dialog__body,.ip-collection-dialog__body) { padding:20px; }
.ip-workspace-body dialog :is(label,p,small) { line-height:1.5; }
.ip-workspace-body dialog label { font-size:var(--ip-type-small); }
.ip-workspace-body .ip-preview dialog h2 { font-size:var(--ip-type-title-small); line-height:1.35; font-weight:650; }
.ip-workspace-body .ip-preview dialog p { font-size:var(--ip-type-small); }
.ip-workspace-body [hidden] { display:none !important; }
.ip-icon-button { display:inline-grid; place-items:center; width:var(--ip-control-target); height:var(--ip-control-target); min-width:var(--ip-control-target); padding:0; border:1px solid transparent; border-radius:12px; color:var(--ip-color-text-muted); background:transparent; cursor:pointer; }
.ip-icon-button:hover { background:var(--ip-color-surface-related); color:var(--ip-color-text); }
.ip-icon-button .ip-icon { width:16px; height:16px; }
.ip-workspace-body :is(button,a,input,select,textarea):focus-visible { outline:2px solid var(--ip-color-focus); outline-offset:3px; }
.ip-workspace-body :is(button,a) { transition:background-color 150ms ease,color 150ms ease,transform 150ms ease; }
.ip-workspace-body :is(.ip-button,.ip-icon-button):active { transform:scale(.98); }
.ip-workspace-body .ip-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Home: real catalog counts and a compact calendar of latest modifications. */
.ip-dashboard-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.ip-dashboard-stat { position:relative; min-height:120px; overflow:hidden; padding:20px; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); color:var(--ip-color-text); background:var(--ip-color-surface); }
.ip-dashboard-stat > span:first-child { display:flex; justify-content:space-between; gap:8px; font-size:var(--ip-type-small); }
.ip-dashboard-stat > span:first-child .ip-icon { width:18px; height:18px; }
.ip-dashboard-stat > strong { display:block; margin-top:10px; font-size:2rem; font-weight:600; line-height:1.1; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.ip-dashboard-stat.is-featured > strong { color:var(--ip-color-action); }
.ip-stat-mark { position:absolute; right:24px; bottom:20px; opacity:.24; }
.ip-stat-mark .ip-icon { width:32px; height:32px; }
.ip-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr); gap:16px; }
.ip-dashboard-panel { padding:20px; min-width:0; background:var(--ip-color-surface); border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); }
.ip-dashboard-panel > header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.ip-dashboard-panel h2 { font-size:var(--ip-type-section); font-weight:650; letter-spacing:-.02em; margin:0; }
.ip-dashboard-panel > header :is(a,span) { display:flex; align-items:center; gap:8px; font-size:var(--ip-type-small); }
.ip-dashboard-panel > header .ip-icon { width:18px; height:18px; }
.ip-recent-list { list-style:none; margin:0; padding:0; }
.ip-recent-list li { display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--ip-color-border); }
.ip-recent-list li:last-child { border:0; }
.ip-recent-list li > div { display:grid; gap:4px; flex:1; min-width:0; }
.ip-recent-list strong { font-size:var(--ip-type-small); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-recent-list li > div > span { font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-recent-symbol { display:grid; place-items:center; width:40px; height:40px; flex:0 0 auto; border-radius:12px; background:var(--ip-color-action-soft); color:var(--ip-color-action); }
.ip-recent-symbol .ip-icon { width:19px; height:19px; }
.ip-dashboard-empty { display:grid; justify-items:center; align-content:center; min-height:200px; gap:12px; text-align:center; }
.ip-dashboard-empty > .ip-icon { width:40px; height:40px; color:var(--ip-color-action); }
.ip-dashboard-empty h3 { margin:0; font-size:var(--ip-type-body); font-weight:500; }
.ip-dashboard-empty a { font-size:var(--ip-type-small); }
.ip-dashboard-ring { display:grid; place-items:center; width:144px; aspect-ratio:1; margin:12px auto 24px; padding:14px; border-radius:50%; background:conic-gradient(var(--ip-color-action) var(--ip-ring-value),var(--ip-color-surface-related) 0); transform:rotate(-90deg); }
.ip-dashboard-ring > div { display:grid; place-content:center; gap:4px; text-align:center; width:100%; height:100%; border-radius:50%; background:var(--ip-color-surface); transform:rotate(90deg); }
.ip-dashboard-ring strong { font-size:2rem; line-height:1; font-weight:600; letter-spacing:-.05em; }
.ip-dashboard-ring span { font-size:var(--ip-type-small); color:var(--ip-color-text-muted); }
.ip-chart-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-chart-legend > span { display:flex; gap:6px; align-items:center; }
.ip-chart-legend i { width:8px; height:8px; border-radius:50%; background:var(--ip-color-action); }
.ip-chart-legend > span + span i { background:var(--ip-color-border-strong); }
.ip-day-grid { display:grid; grid-template-columns:repeat(14,minmax(0,1fr)); gap:6px; margin:20px 0; }
.ip-day-cell { position:relative; display:block; aspect-ratio:1; border-radius:5px; background:var(--ip-color-surface-related); outline-offset:2px; }
.ip-day-cell[data-level="1"] { background:color-mix(in srgb,var(--ip-color-chart-warm) 35%,var(--ip-color-surface)); }
.ip-day-cell[data-level="2"] { background:color-mix(in srgb,var(--ip-color-chart-warm) 65%,var(--ip-color-surface)); }
.ip-day-cell[data-level="3"] { background:var(--ip-color-chart-warm); }
.ip-day-cell:hover::after,.ip-day-cell:focus::after { content:attr(title); position:absolute; bottom:calc(100% + 8px); left:0; z-index:5; width:180px; padding:8px; font-size:var(--ip-type-caption); border-radius:8px; color:var(--ip-color-text); background:var(--ip-color-surface); box-shadow:var(--ip-shadow-card); }
.ip-day-cell:nth-child(14n):is(:hover,:focus)::after { left:auto; right:0; }
.ip-day-cell:is(:nth-child(14n + 11),:nth-child(14n + 12),:nth-child(14n + 13)):is(:hover,:focus)::after { left:auto; right:0; }
.ip-dashboard-activity footer { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-day-key { display:flex; gap:4px; align-items:center; }
.ip-day-key i { width:10px; height:10px; border-radius:3px; background:var(--ip-color-surface-related); }
.ip-day-key i:nth-child(2) { background:var(--ip-color-activity-low); }
.ip-day-key i:nth-child(3) { background:var(--ip-color-activity-high); }
.ip-dashboard-shortcuts > a { display:flex; align-items:center; gap:12px; padding:10px 0; color:var(--ip-color-text); }
.ip-dashboard-shortcuts > a strong { flex:1; font-size:var(--ip-type-small); font-weight:500; }
.ip-dashboard-shortcuts > a > .ip-icon { width:16px; height:16px; }

/* Admin workspace: a compact operational overview and shared settings. */
.ip-dashboard-stats.ip-dashboard-stats--admin { grid-template-columns:repeat(5,minmax(0,1fr)); }
.ip-admin-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ip-panel-gap); margin-bottom:var(--ip-panel-gap); }
.ip-admin-overview > .ip-dashboard-panel { display:flex; flex-direction:column; min-height:340px; }
.ip-admin-overview .ip-dashboard-panel > header { min-height:36px; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.ip-admin-overview .ip-dashboard-panel > header > span { font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-admin-overview .ip-recent-list li { padding:10px 0; gap:10px; }
.ip-admin-overview .ip-recent-symbol { width:32px; height:32px; border-radius:9px; }
.ip-admin-overview .ip-recent-symbol .ip-icon { width:16px; height:16px; }
.ip-admin-overview .ip-recent-list li > div { gap:2px; }
.ip-admin-feedback { margin:8px 0; color:var(--ip-color-text-muted); font-size:var(--ip-type-small); }
.ip-admin-feedback:empty { display:none; }
.ip-admin-feedback.is-error { color:var(--ip-color-error); }
.ip-admin-empty { margin:12px 0; color:var(--ip-color-text-muted); font-size:var(--ip-type-small); }
.ip-task-list,.ip-online-list { list-style:none; padding:0; margin:0; max-height:268px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.ip-task-list { flex:1; }
.ip-task { display:flex; align-items:flex-start; gap:10px; min-height:44px; padding:10px 0; cursor:pointer; }
.ip-task input { appearance:none; position:relative; flex:0 0 auto; width:18px; height:18px; margin:2px 0 0; border:1px solid var(--ip-color-border-strong); border-radius:5px; background:var(--ip-color-surface); cursor:inherit; }
.ip-task input:checked { border-color:var(--ip-color-action); background:var(--ip-color-action); }
.ip-task input:checked::after { content:''; position:absolute; left:5px; top:2px; width:5px; height:9px; border:solid var(--ip-color-on-action); border-width:0 2px 2px 0; transform:rotate(45deg); }
.ip-task span { overflow-wrap:anywhere; transition:color 150ms ease; }
.ip-task input:checked + span { color:var(--ip-color-text-muted); text-decoration:line-through; }
.ip-admin-tasks form { display:flex; align-items:center; gap:4px; border-top:1px solid var(--ip-color-border); padding-top:12px; margin-top:12px; }
.ip-admin-tasks form .ip-input { min-width:0; width:100%; }
.ip-online-list li { display:flex; align-items:center; gap:10px; padding:9px 0; }
.ip-online-list .ip-contact-avatar { position:relative; overflow:hidden; width:32px; height:32px; font-size:var(--ip-type-caption); flex:0 0 auto; }
.ip-online-list .ip-contact-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ip-online-name { flex:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ip-online-dot { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:var(--ip-color-text-muted); }
.ip-online-dot[data-online="true"] { background:var(--ip-color-success,#25865b); box-shadow:0 0 0 3px color-mix(in srgb,var(--ip-color-success,#25865b) 12%,transparent); }
.ip-text-button { border:0; background:transparent; color:var(--ip-color-action); font:inherit; cursor:pointer; padding:4px; border-radius:6px; text-align:left; }
.ip-admin-users > .ip-text-button { margin-top:auto; align-self:flex-start; }
.ip-admin-charts { display:grid; grid-template-columns:minmax(0,2fr) minmax(326px,1fr); gap:var(--ip-panel-gap); }
.ip-admin-charts .ip-dashboard-panel { display:flex; flex-direction:column; }
.ip-admin-charts .ip-dashboard-panel > header { gap:8px; flex-wrap:wrap; }
.ip-admin-charts .ip-dashboard-panel > header > span { font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-publication-bars { display:grid; grid-template-columns:repeat(28,minmax(0,1fr)); height:180px; min-height:180px; flex:1; gap:6px; padding-top:16px; border-bottom:1px solid var(--ip-color-border); background:repeating-linear-gradient(to top,transparent 0,transparent 44px,var(--ip-color-border) 45px,transparent 46px); }
.ip-chart-day { position:relative; height:100%; display:flex; align-items:flex-end; border-radius:4px 4px 0 0; outline-offset:3px; }
.ip-chart-day__bar { width:100%; min-height:3px; max-height:100%; background:var(--ip-color-action); border-radius:4px 4px 0 0; transition:opacity 150ms ease; }
.ip-chart-day__bar[data-empty="true"] { background:var(--ip-color-border-strong); }
.ip-chart-day:hover .ip-chart-day__bar { opacity:.72; }
.ip-presence-grid { display:grid; grid-template-columns:repeat(8,minmax(0,32px)); grid-template-rows:repeat(4,auto); gap:4px; width:100%; margin:auto 0 0; padding-top:12px; justify-content:start; }
.ip-presence-day { position:relative; aspect-ratio:1; width:100%; max-width:32px; min-width:0; border-radius:5px; background:var(--ip-color-surface-related); outline-offset:3px; }
.ip-presence-day[data-level="unknown"] { background:repeating-linear-gradient(135deg,var(--ip-color-surface) 0,var(--ip-color-surface) 3px,var(--ip-color-border) 3px,var(--ip-color-border) 4px); }
.ip-presence-day[data-level="1"] { background:var(--ip-color-activity-low); }
.ip-presence-day[data-level="2"] { background:var(--ip-color-activity-medium); }
.ip-presence-day[data-level="3"] { background:var(--ip-color-activity-high); }
@media (max-width:400px) { .ip-presence-grid { gap:3px; } }
.ip-admin-charts [data-tooltip]:is(:hover,:focus)::after { content:attr(data-tooltip); position:absolute; z-index:5; bottom:calc(100% + 8px); left:0; width:180px; max-width:70vw; padding:8px 10px; border:1px solid var(--ip-color-border); border-radius:8px; background:var(--ip-color-surface); color:var(--ip-color-text); box-shadow:var(--ip-shadow-sm); font-size:var(--ip-type-caption); pointer-events:none; }
.ip-publication-bars [data-tooltip]:nth-child(n+15)::after,.ip-presence-grid [data-tooltip]:is(:nth-child(8n),:nth-child(8n - 1),:nth-child(8n - 2),:nth-child(8n - 3))::after { left:auto; right:0; }
.ip-chart-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:16px; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-settings-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; align-items:start; width:100%; }
.ip-settings-nav { display:flex; flex-direction:column; gap:4px; }
.ip-settings-nav a { display:flex; align-items:center; padding:8px 12px; min-height:36px; border-radius:8px; color:var(--ip-color-text-muted); font-weight:500; }
.ip-settings-nav a:hover { background:var(--ip-color-surface-related); color:var(--ip-color-text); }
.ip-settings-nav a[aria-current] { background:var(--ip-color-action-soft); color:var(--ip-color-action); font-weight:600; }
.ip-settings-content { min-width:0; }
.ip-workspace-body .ip-settings-form { margin:0; max-width:none; display:block; }
.ip-workspace-body .ip-settings-form label { color:var(--ip-color-text); }
.ip-settings-form h2 { font-size:var(--ip-type-section); font-weight:650; line-height:1.5; margin:0 0 20px; }
.ip-settings-form h3 { font-size:var(--ip-type-small); font-weight:600; margin:0 0 16px; }
.ip-settings-form .ip-form-field { margin-bottom:16px; }
.ip-workspace-body .ip-settings-form .ip-profile-form-actions { position:static; margin:24px 0 0; padding:16px 0 0; border:0; border-top:1px solid var(--ip-color-border); border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.ip-setting-row { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:60px; border-bottom:1px solid var(--ip-color-border); cursor:pointer; }
.ip-setting-row:last-of-type { border-bottom:0; }
.ip-setting-row .ip-profile-switch { flex:0 0 auto; }
.ip-theme-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; border:0; max-width:540px; margin:0; }
.ip-theme-options label { position:relative; display:grid; gap:10px; cursor:pointer; font-size:var(--ip-type-small); }
.ip-theme-options input { position:absolute; left:10px; top:10px; margin:0; accent-color:var(--ip-color-action); }
.ip-theme-swatch { display:block; height:100px; border:1px solid var(--ip-color-border-strong); border-radius:12px; background:linear-gradient(90deg,#eeeaf3 0 22%,#ffffff 22%); }
.ip-theme-swatch--dark { background:var(--ip-texture-grain),linear-gradient(90deg,var(--ip-ink-950) 0 22%,var(--ip-ink-900) 22%); }
.ip-theme-swatch--system { background:linear-gradient(90deg,#eeeaf3 0 22%,#ffffff 22% 50%,var(--ip-ink-900) 50%); }
.ip-theme-options input:checked + .ip-theme-swatch { border:2px solid var(--ip-color-action); }
.ip-theme-options input:focus-visible + .ip-theme-swatch { outline:2px solid var(--ip-color-focus); outline-offset:3px; }
.ip-message-create { position:relative; }
.ip-message-create > summary { list-style:none; cursor:pointer; }
.ip-message-create > summary::-webkit-details-marker { display:none; }
.ip-message-create__menu { position:absolute; top:calc(100% + 8px); left:0; width:200px; padding:6px; background:var(--ip-color-surface); border:1px solid var(--ip-color-border); border-radius:12px; box-shadow:var(--ip-shadow-card); z-index:20; }
.ip-message-create__menu button { display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:8px 10px; border:0; border-radius:8px; background:transparent; font:inherit; color:var(--ip-color-text); text-align:left; cursor:pointer; }
.ip-message-create__menu button:hover { background:var(--ip-color-surface-related); }
.ip-message-create__menu .ip-icon { width:16px; height:16px; }
.ip-broadcast-form { display:grid; gap:12px; }
.ip-broadcast-form .ip-button { justify-self:end; }
.ip-broadcast-form textarea { resize:vertical; }
.ip-broadcast-form .ip-field-help { margin:0; }
@media (max-width:1100px) {
 .ip-dashboard-stats.ip-dashboard-stats--admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ip-dashboard-stats--admin .ip-dashboard-stat:last-child { grid-column:1 / -1; }
}
@media (max-width:1100px) and (min-width:761px) {
 .ip-admin-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ip-admin-overview > .ip-admin-users { grid-column:1/-1; min-height:0; }
 .ip-admin-users .ip-online-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
}
@media (max-width:760px) {
 .ip-admin-overview,.ip-admin-charts { grid-template-columns:minmax(0,1fr); }
 .ip-admin-overview > .ip-dashboard-panel { min-height:0; }
 .ip-task-list { min-height:100px; }
 .ip-settings-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
 .ip-settings-nav { flex-direction:row; overflow:auto; max-width:100%; scrollbar-width:none; }
 .ip-settings-nav a { white-space:nowrap; flex:0 0 auto; min-height:44px; }
 .ip-publication-bars { gap:4px; height:160px; }
 .ip-theme-options { gap:10px; }
 .ip-theme-swatch { height:80px; }
 .ip-message-create__menu button { min-height:44px; }
 .ip-online-list li { min-height:48px; }
}

/* Communication: readable rows and a persistent conversation pane. */
.ip-workspace-body .ip-communication { max-width:none; }
.ip-communication-feedback:empty { display:none; }
.ip-communication-feedback { margin:0 0 16px; font-size:var(--ip-type-small); }
.ip-communication[aria-busy="true"] .ip-communication-panel { opacity:.7; }
.ip-notification-panel { max-width:none; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); overflow:hidden; }
.ip-communication-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 20px; border-bottom:1px solid var(--ip-color-border); }
.ip-segmented { display:inline-flex; padding:4px; gap:4px; background:var(--ip-color-surface-related); border-radius:12px; }
/* Tab geometry overrides the shared action-button radius, including its global rule. */
.ip-workspace-body .ip-view-switch > button { --ip-button-radius:8px; }
.ip-segmented > :is(button,a) { --ip-button-radius:8px; border:0; border-radius:var(--ip-button-radius); min-height:32px; padding:6px 12px; background:transparent; color:var(--ip-color-text-muted); font:inherit; font-size:var(--ip-type-small); cursor:pointer; }
.ip-segmented > :is([aria-pressed="true"],[aria-selected="true"],[aria-current="page"]) { color:var(--ip-color-text); background:var(--ip-color-surface); box-shadow:var(--ip-shadow-sm); font-weight:600; }
.ip-workspace-body .ip-communication-category select { font-size:var(--ip-type-small); min-height:36px; padding-block:8px; }
.ip-notification-day h2 { font-size:var(--ip-type-caption); font-weight:600; color:var(--ip-color-text-muted); margin:0; padding:20px 24px 8px; }
.ip-notification-list { list-style:none; padding:0; margin:0; }
.ip-notification-row { display:flex; align-items:flex-start; gap:16px; padding:12px 16px; position:relative; }
.ip-notification-row:hover { background:var(--ip-color-surface-subtle); }
.ip-notification-row.is-unread { background:color-mix(in srgb,var(--ip-color-action) 3%,var(--ip-color-surface)); }
.ip-notification-row.is-unread::before { content:''; position:absolute; left:10px; top:36px; width:5px; height:5px; border-radius:50%; background:var(--ip-color-action); }
.ip-notification-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 auto; border-radius:10px; color:var(--ip-color-action); background:var(--ip-color-action-soft); }
.ip-notification-icon .ip-icon { width:16px; height:16px; }
.ip-notification-row[data-kind="event"] .ip-notification-icon { color:var(--ip-color-chart-warm); background:color-mix(in srgb,var(--ip-color-chart-warm) 9%,var(--ip-color-surface)); }
.ip-notification-content { min-width:0; flex:1; display:grid; gap:6px; color:var(--ip-color-text); }
.ip-notification-content strong { font-size:var(--ip-type-small); font-weight:600; line-height:1.5; }
.ip-notification-row:not(.is-unread) strong { font-weight:500; }
.ip-notification-meta { display:flex; align-items:center; gap:12px; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-notification-meta time { margin-left:auto; white-space:nowrap; }
.ip-notification-action { font-size:var(--ip-type-caption); color:var(--ip-color-link); }
.ip-notification-read { margin-left:4px; }
.ip-communication-more { display:flex; margin:20px auto; }
.ip-communication-empty { display:grid; justify-items:center; align-content:center; gap:8px; padding:32px 16px; text-align:center; min-height:160px; }
.ip-communication-empty h2 { font-size:var(--ip-type-section); margin:8px 0 0; font-weight:600; letter-spacing:-.02em; }
.ip-communication-empty p { margin:0; font-size:var(--ip-type-small); color:var(--ip-color-text-muted); max-width:36ch; line-height:1.5; }
.ip-empty-orbit { display:none; }
.ip-empty-orbit .ip-icon { width:28px; height:28px; transform:rotate(8deg); }
.ip-messenger-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:16px; height:calc(100dvh - var(--ip-workspace-topbar-height) - 40px); min-height:480px; background:transparent; }
.ip-messenger-inbox { min-width:0; overflow:auto; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); }
.ip-inbox-search { position:sticky; top:0; z-index:1; display:flex; align-items:center; padding:0 12px 12px; background:var(--ip-color-surface); }
.ip-inbox-search > .ip-icon { position:absolute; left:24px; width:16px; height:16px; color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-preview .ip-inbox-search input.ip-input[type] { padding-left:34px; font-size:var(--ip-type-small); background:var(--ip-color-surface-subtle); border-color:transparent; }
.ip-messenger .ip-inbox-list { display:block; margin:0; padding:0 8px; }
.ip-messenger .ip-inbox-row { display:block; padding:0; margin:4px 0; border:0; border-radius:12px; }
.ip-messenger .ip-inbox-row.is-active { background:var(--ip-color-action-soft); }
.ip-messenger .ip-inbox-link { display:flex; align-items:center; gap:8px; padding:10px 8px; font-weight:400; }
.ip-messenger .ip-inbox-row:hover { background:var(--ip-color-surface-subtle); }
.ip-contact-avatar { width:32px; height:32px; flex:0 0 auto; display:grid; place-items:center; border-radius:14px; background:var(--ip-color-action-soft); color:var(--ip-color-action); font-size:var(--ip-type-small); font-weight:650; }
.ip-inbox-copy { display:grid; min-width:0; flex:1; gap:4px; }
.ip-inbox-top { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.ip-inbox-top strong { font-size:var(--ip-type-small); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-inbox-top time { font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); flex:0 0 auto; }
.ip-inbox-preview { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--ip-type-small); color:var(--ip-color-text-muted); }
.ip-inbox-context { font-size:var(--ip-type-caption); color:var(--ip-color-link); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-inbox-unread { min-width:20px; height:20px; display:grid; place-items:center; padding:0 4px; border-radius:50%; color:var(--ip-color-on-action); background:var(--ip-color-action); font-size:var(--ip-type-caption); }
.ip-messenger-thread { display:flex; flex-direction:column; min-width:0; min-height:0; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); overflow:hidden; }
.ip-thread-welcome { flex:1; }
.ip-thread-heading { display:flex; align-items:center; gap:12px; padding:12px 16px; background:var(--ip-color-surface); border-bottom:1px solid var(--ip-color-border); }
.ip-thread-heading > div { min-width:0; }
.ip-thread-heading h2 { font-size:var(--ip-type-body); font-weight:600; margin:0; overflow-wrap:anywhere; }
.ip-thread-heading [data-conversation-kind] { font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-thread-back { display:none; }
.ip-thread-history { margin:8px auto 0; }
.ip-messenger .ip-message-list { display:flex; flex-direction:column; gap:12px; flex:1; min-height:0; max-height:none; margin:0; padding:24px; overflow-y:auto; scrollbar-gutter:stable; }
.ip-message-day { align-self:center; color:var(--ip-color-text-muted); font-size:var(--ip-type-caption); padding:8px; }
.ip-messenger .ip-message-bubble { align-self:flex-start; max-width:85%; padding:10px 12px; border:1px solid var(--ip-color-border); border-radius:12px 12px 12px 4px; background:var(--ip-color-surface); }
.ip-messenger .ip-message-bubble.is-mine { align-self:flex-end; border-color:transparent; border-radius:12px 12px 4px 12px; background:var(--ip-color-action-soft); }
.ip-messenger .ip-message-bubble p { color:var(--ip-color-text); font-size:var(--ip-type-small); line-height:1.6; margin:0 0 6px; }
.ip-messenger .ip-message-bubble time { font-size:var(--ip-type-caption); text-align:right; }
.ip-workspace-body .ip-message-composer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 16px; margin:0; background:var(--ip-color-surface); border-top:1px solid var(--ip-color-border); }
.ip-workspace-body .ip-preview .ip-message-composer textarea.ip-input { resize:none; border:0; min-height:48px; max-height:120px; background:var(--ip-color-surface-subtle); }
.ip-workspace-body .ip-message-composer button { min-width:44px; padding:12px; }
.ip-message-composer [data-message-feedback] { grid-column:1/-1; margin:0; font-size:var(--ip-type-small); }
.ip-message-composer [data-message-feedback]:empty { display:none; }
.ip-contact-picker .ip-vol-apply-dialog__body { display:grid; gap:12px; min-height:220px; }
.ip-contact-results { list-style:none; padding:0; margin:0; }
.ip-contact-option { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:12px; color:var(--ip-color-text); border:0; border-radius:12px; background:transparent; cursor:pointer; }
.ip-contact-option:hover { background:var(--ip-color-surface-subtle); }
.ip-contact-option > span:last-child { display:grid; gap:4px; }
.ip-contact-option strong { font-size:var(--ip-type-small); font-weight:600; }
.ip-contact-option small { color:var(--ip-color-text-muted); }

@media(max-width:1100px) { .ip-workspace-body { --ip-workspace-gutter:20px; --ip-panel-gap:16px; } .ip-workspace-body .ip-managed-studio { grid-template-columns:minmax(0,1fr) 260px; } .ip-dashboard-stat { padding:20px; } .ip-dashboard-grid { grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); } }
@media(max-width:900px) { .ip-workspace-body .ip-managed-studio { grid-template-columns:1fr; } .ip-workspace-body .ip-managed-studio__aside { position:static; } .ip-messenger-layout { grid-template-columns:260px minmax(0,1fr); } }
@media(max-width:700px) {
 .ip-workspace-body { --ip-workspace-gutter:16px; --ip-panel-padding:16px; --ip-panel-gap:16px; --ip-type-title:1.375rem; --ip-control-target:44px; --ip-button-height:44px; --ip-input-height:44px; }
 .ip-workspace-body .ip-profile-tabs__button { min-height:52px; padding:8px 4px; line-height:1.4; }
 .ip-workspace-body .ip-workspace-topbar { padding-inline:16px; }
 .ip-workspace-body .ip-workspace-topbar__eyebrow { display:none; }
 .ip-workspace-body .ip-shell__main { padding:calc(var(--ip-workspace-topbar-height) + 16px) 16px 16px; }
 .ip-workspace-body .ip-workspace-head { gap:12px; margin-bottom:16px; flex-wrap:wrap; }
 .ip-workspace-body .ip-workspace-head h1 { max-width:100%; overflow-wrap:anywhere; }
 .ip-workspace-body .ip-workspace-head .ip-button { min-height:44px; width:auto; }
 .ip-workspace-body .ip-workspace-head > .ip-button-row { width:auto; flex:0 0 auto; justify-content:flex-start; }
 .ip-dashboard-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
 .ip-dashboard-stat { padding:16px; min-height:128px; border-radius:16px; }
 .ip-dashboard-stat > strong { font-size:2rem; }
 .ip-stat-mark { right:16px; bottom:16px; }
 .ip-dashboard-grid { grid-template-columns:1fr; gap:16px; }
 .ip-dashboard-panel { padding:20px; }
 .ip-dashboard-distribution { order:3; }
 .ip-dashboard-shortcuts { order:4; }
 .ip-recent-list .ip-status-pill { font-size:var(--ip-type-caption); }
 .ip-recent-list .ip-recent-symbol { display:none; }
 .ip-dashboard-activity footer { flex-wrap:wrap; }
 .ip-dashboard-panel > header { gap:8px; }
 .ip-dashboard-panel > header a { white-space:nowrap; font-size:var(--ip-type-caption); }
 .ip-day-grid { grid-template-columns:repeat(7,minmax(0,1fr)); }
 .ip-day-cell:is(:hover,:focus)::after { width:160px; left:0; right:auto; }
 .ip-day-cell:is(:nth-child(7n + 5),:nth-child(7n + 6),:nth-child(7n)):is(:hover,:focus)::after { left:auto; right:0; }
 .ip-day-cell:nth-child(7n):is(:hover,:focus)::after { left:auto; right:0; }
 .ip-communication-toolbar { padding:16px; flex-wrap:wrap; gap:12px; }
 .ip-communication-category { width:100%; }
 .ip-notification-day h2 { padding-inline:16px; }
 .ip-notification-row { padding:16px; gap:12px; }
 .ip-notification-icon { width:36px; height:36px; border-radius:12px; }
 .ip-notification-read { margin:0; width:44px; min-width:44px; }
 .ip-notification-row.is-unread::before { left:5px; top:32px; }
 .ip-notification-meta { flex-wrap:wrap; gap:4px 8px; }
 .ip-messenger-layout { display:block; height:calc(100dvh - var(--ip-workspace-topbar-height) - 32px); min-height:420px; }
 .ip-messenger-inbox,.ip-messenger-thread { height:100%; }
 .ip-messenger-inbox { border-right:0; }
 .ip-messenger-thread { display:none; }
 .ip-messenger-layout.has-thread .ip-messenger-inbox { display:none; }
 .ip-messenger-layout.has-thread .ip-messenger-thread { display:flex; }
 .ip-thread-heading { padding:12px; gap:8px; }
 .ip-thread-back { display:inline-grid; }
 .ip-thread-heading h2 { font-size:var(--ip-type-small); }
 .ip-thread-heading .ip-contact-avatar { width:36px; height:36px; }
 .ip-messenger .ip-message-list { padding:16px; }
 .ip-workspace-body .ip-message-composer { padding:12px; gap:8px; }
 .ip-message-composer button span { display:none; }
 .ip-workspace-body :is(.ip-vol-apply-dialog__header,.ip-collection-dialog__header,.ip-vol-apply-dialog__body,.ip-collection-dialog__body) { padding:20px; }
 .ip-workspace-body .ip-preview .ip-inbox-search input.ip-input[type],.ip-workspace-body .ip-communication-category select { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .ip-workspace-body *, .ip-workspace-body *::before, .ip-workspace-body *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

.ip-workspace-body .ip-logo-dark { display:none; }
[data-theme="dark"] .ip-workspace-body .ip-logo-light { display:none; }
[data-theme="dark"] .ip-workspace-body .ip-logo-dark { display:block; }

.ip-workspace-body .ip-publications-workspace { gap:20px; }
.ip-workspace-body .ip-publications-workspace .ip-workspace-head,
.ip-workspace-body .ip-group-workspace > .ip-workspace-head,
.ip-workspace-body .ip-applications .ip-workspace-heading { margin-bottom:0; }
.ip-workspace-body .ip-publications-scope { border:0; }
.ip-workspace-body .ip-publications-scope a { font-size:var(--ip-type-small); font-weight:500; }
.ip-workspace-body .ip-publications-status { background:transparent; border:0; padding:0; border-radius:0; gap:8px; }
.ip-workspace-body .ip-publications-status button { font-size:var(--ip-type-small); font-weight:500; }
.ip-workspace-body .ip-publications-status button.is-active { background:var(--ip-color-action-soft); color:var(--ip-color-action); box-shadow:none; }
.ip-workspace-body .ip-publications-toolbar { min-height:0; padding:20px; gap:16px; }
.ip-workspace-body .ip-publications-toolbar > div:first-child { flex:0 0 auto; }
@media(max-width:700px) {
 .ip-workspace-body .ip-publications-table :is(th,td) { padding:0; }
 .ip-workspace-body .ip-publications-table td::before { text-transform:none; letter-spacing:0; font-weight:400; }
 .ip-workspace-body .ip-publications-table tbody tr { padding:20px 16px; gap:16px; }
 .ip-workspace-body .ip-publication-title-cell strong { white-space:normal; display:block; overflow:visible; font-size:var(--ip-type-small); font-weight:650; }
 .ip-workspace-body .ip-publications-table td:nth-child(2) { grid-column:1; }
 .ip-workspace-body .ip-publications-table td:nth-child(3) { grid-column:2; }
 .ip-workspace-body .ip-publications-table td:nth-child(4) { grid-column:1/-1; }
 .ip-workspace-body .ip-publications-table td:last-child { grid-row:auto; grid-column:1/-1; }
 .ip-workspace-body .ip-publications-table td:last-child::before { display:none; }
 .ip-workspace-body .ip-publication-row__actions { justify-content:flex-end; border-top:1px solid var(--ip-color-border); padding-top:8px; }
 .ip-workspace-body .ip-publications-status { gap:4px; }
 .ip-workspace-body .ip-publications-status button { padding:8px; }
}

.ip-workspace-body .ip-publications-create__menu { max-height:min(560px,calc(100dvh - 220px)); overflow-y:auto; overscroll-behavior:contain; padding:16px; border-radius:16px; }
.ip-workspace-body .ip-publications-create__menu a { min-height:40px; padding:8px; }
.ip-workspace-body .ip-publications-create__menu strong { font-size:var(--ip-type-small); font-weight:600; }
.ip-workspace-body .ip-publications-create__label { text-transform:none; letter-spacing:0; font-weight:600; font-size:var(--ip-type-small); }
@media(max-width:700px) { .ip-workspace-body .ip-publication-title-cell__copy strong { white-space:normal; overflow:visible; } }

.ip-account-password { margin-top:24px; padding-top:16px; border-top:1px solid var(--ip-color-border); }
.ip-account-password > summary { min-height:44px; padding:10px 0; cursor:pointer; font-size:var(--ip-type-small); font-weight:600; color:var(--ip-color-link); }
.ip-account-password[open] > summary { margin-bottom:16px; }
.ip-account-password .ip-profile-section { padding:0; margin:0; border:0; }

/* Compact switches rely on position and their accessible checked state. */
.ip-workspace-body .ip-profile-switch--compact { width:100%; flex-direction:row-reverse; justify-content:space-between; }
.ip-workspace-body .ip-profile-switch__copy strong { font-size:var(--ip-type-small); font-weight:500; }
.ip-workspace-body .ip-form-state:empty { display:none; }
.ip-dashboard-distribution { display:flex; flex-direction:column; }
.ip-dashboard-distribution .ip-dashboard-ring { margin-block:auto; }
.ip-dashboard-distribution .ip-chart-legend { padding-block:20px 8px; }
.ip-status-pill { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-status-pill::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--ip-color-border-strong); }
.ip-status-pill[data-state="public"]::before { background:var(--ip-color-action); }
@media(max-width:767px) { .ip-dashboard-distribution .ip-dashboard-ring { margin-block:12px; align-self:center; } }

.ip-workspace-body .ip-collaboration-row { background:transparent; }
.ip-workspace-body .ip-profile-switch--contact > span:first-child { display:grid; gap:2px; font-size:var(--ip-type-small); }
.ip-workspace-body .ip-profile-switch--contact small { display:block; max-width:24ch; font-size:var(--ip-type-caption); color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-profile-media-editor-grid { grid-template-columns:minmax(280px,1fr) minmax(0,1.4fr); }
.ip-workspace-body .ip-profile-media-upload { border-radius:var(--ip-button-radius); white-space:nowrap; }
.ip-workspace-body .ip-business-fields { gap:20px; }
@media(max-width:1100px) { .ip-workspace-body .ip-profile-media-editor-grid { grid-template-columns:1fr; } }

.ip-workspace-body .ip-profile-card > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none; cursor:pointer; font-size:var(--ip-type-small); font-weight:600; }
.ip-workspace-body .ip-profile-card > summary::-webkit-details-marker { display:none; }
.ip-workspace-body .ip-profile-card > summary::after { content:""; width:7px; height:7px; flex-shrink:0; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform 150ms ease; }
.ip-workspace-body .ip-profile-card[open] > summary::after { transform:rotate(225deg); }
.ip-workspace-body .ip-profile-card > summary + p { margin:16px 0; font-size:var(--ip-type-small); color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-adoption-question-editor { padding:20px 0; border:0; border-top:1px solid var(--ip-color-border); border-radius:0; margin:0; }
.ip-workspace-body .ip-adoption-question-editor legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ip-workspace-body .ip-adoption-question-editor label { font-size:var(--ip-type-small); font-weight:500; }
.ip-workspace-body .ip-adoption-dialog__body { padding:20px; }
.ip-workspace-body .ip-adoption-dialog__body p { color:var(--ip-color-text); }
.ip-workspace-body .ip-adoption-answers { gap:6px; margin:20px 0; }
.ip-workspace-body .ip-adoption-answers dt { font-size:var(--ip-type-small); font-weight:600; margin-top:16px; }
.ip-workspace-body .ip-adoption-answers dd { font-size:var(--ip-type-body); }
.ip-workspace-body [data-adoption-review-answers] > p { font-size:var(--ip-type-small); margin:8px 0; }
.ip-workspace-body [data-adoption-list] .ip-inbox-link { gap:4px; }
.ip-workspace-body [data-adoption-list] .ip-inbox-link p { margin:0; font-size:var(--ip-type-small); font-weight:400; color:var(--ip-color-text-muted); }
@media(max-width:767px) { .ip-workspace-body .ip-adoption-dialog__body { padding:20px; } }

/* Shared shell, scaled from the user's dashboard reference. */
.ip-workspace-body .ip-shell-nav__icon,.ip-workspace-body .ip-shell-nav__icon .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-shell-nav__link { gap:10px; }
.ip-workspace-body .ip-shell-sidebar__footer { border:0; }
.ip-workspace-body .ip-shell-user__avatar,.ip-workspace-body .ip-shell-logout { display:none; }
.ip-workspace-body .ip-shell-user { min-height:36px; padding:8px; }
.ip-workspace-body .ip-shell-user__copy strong { font-size:12px; font-weight:500; }
.ip-workspace-body .ip-shell.is-collapsed .ip-shell-sidebar__brand { justify-content:center; padding:12px 8px; }
.ip-workspace-body .ip-shell.is-collapsed .ip-shell-sidebar__brand > a { display:flex; }
.ip-workspace-body .ip-shell.is-collapsed .ip-shell-sidebar__brand img { width:40px; height:32px; }
.ip-workspace-body .ip-shell.is-collapsed .ip-shell-nav__link { min-width:36px; min-height:36px; padding:8px; justify-content:center; }
.ip-workspace-body .ip-workspace-topbar__context { min-width:0; gap:12px; }
.ip-workspace-body .ip-workspace-topbar__context > div { min-width:0; }
.ip-workspace-body .ip-workspace-topbar__title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:24px; }
.ip-workspace-body .ip-workspace-topbar__actions { gap:8px; flex:0 0 auto; align-items:center; }
.ip-workspace-body .ip-workspace-topbar__menu { display:inline-grid; place-items:center; width:36px; height:36px; padding:0; flex-shrink:0; border:0; border-radius:10px; background:transparent; color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-workspace-topbar__menu .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-workspace-topbar__public { min-height:36px; padding:8px; border:0; border-radius:10px; font-size:12px; }
.ip-workspace-body .ip-workspace-topbar__public .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-workspace-theme-toggle { display:grid; grid-template-columns:1fr; place-items:center; width:var(--ip-control-target); min-width:var(--ip-control-target); height:var(--ip-control-target); min-height:var(--ip-control-target); padding:0; border:0; border-radius:10px; background:transparent; box-shadow:none; }
.ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__thumb { display:none; }
.ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon { position:static; width:16px; height:16px; color:var(--ip-color-text-muted); }
.ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon--sun { display:none; }
.ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon--moon { display:block; }
[data-theme="dark"] .ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon--sun { display:block; }
[data-theme="dark"] .ip-workspace-body .ip-workspace-theme-toggle .ip-theme-toggle__icon--moon { display:none; }
.ip-workspace-body .ip-workspace-account > summary { display:grid; place-items:center; width:var(--ip-control-target); height:var(--ip-control-target); min-height:var(--ip-control-target); padding:0; border:0; border-radius:50%; }
.ip-workspace-body .ip-workspace-account > summary > :is(.ip-workspace-account__identity,.ip-icon) { display:none; }
.ip-workspace-body .ip-workspace-avatar { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-size:12px; }
.ip-workspace-body .ip-workspace-account__menu { width:300px; padding:8px; border-radius:16px; top:calc(100% + 12px); max-height:calc(100dvh - 90px); overflow:auto; }
.ip-workspace-body .ip-workspace-account__actor { padding:8px; gap:10px; border-radius:8px; }
.ip-workspace-body .ip-workspace-account__actor-avatar { width:30px; height:30px; border-radius:50%; font-size:12px; }
.ip-workspace-body .ip-workspace-account__actor strong { font-size:14px; font-weight:600; }
.ip-workspace-body .ip-workspace-account__actor small { font-size:12px; }
.ip-workspace-body .ip-workspace-account__actions { padding:4px 0 0; }
.ip-workspace-body .ip-workspace-account__actions a { min-height:36px; padding:8px; gap:10px; font-size:14px; border-radius:8px; }
.ip-workspace-body .ip-workspace-account__actions .ip-icon { width:16px; height:16px; }
.ip-header-feed { position:relative; display:block; height:var(--ip-control-target); line-height:1; }
.ip-header-icon { position:relative; display:grid; place-items:center; box-sizing:border-box; width:var(--ip-control-target); height:var(--ip-control-target); min-height:var(--ip-control-target); padding:0; list-style:none; cursor:pointer; border-radius:10px; color:var(--ip-color-text-muted); }
.ip-header-icon::-webkit-details-marker { display:none; }
.ip-header-icon .ip-icon { width:16px; height:16px; }
.ip-header-feed[open] > summary,.ip-workspace-body :is(.ip-header-icon,.ip-workspace-theme-toggle,.ip-workspace-topbar__menu):hover { background:var(--ip-color-surface-related); color:var(--ip-color-text); }
.ip-header-badge { position:absolute; top:5px; right:5px; width:7px; height:7px; padding:0; display:grid; place-items:center; border-radius:999px; font-size:10px; line-height:1; font-weight:700; color:var(--ip-color-on-action); background:var(--ip-color-action); box-shadow:0 0 0 2px var(--ip-color-surface); }
.ip-header-feed__panel { position:absolute; top:calc(100% + 12px); right:0; z-index:240; width:360px; max-width:calc(100vw - 32px); padding:0; border:1px solid var(--ip-color-border); border-radius:16px; background:var(--ip-color-surface); color:var(--ip-color-text); box-shadow:var(--ip-shadow-card); overflow:hidden; }
.ip-header-feed__panel > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--ip-color-border); font-size:14px; }
.ip-header-feed__panel > header strong { font-weight:650; }
.ip-header-feed__panel [data-header-feed-count] { font-size:12px; color:var(--ip-color-text-muted); white-space:nowrap; }
.ip-header-feed__list { list-style:none; margin:0; padding:4px; max-height:min(420px,calc(100dvh - 210px)); overflow:auto; overscroll-behavior:contain; }
.ip-header-feed__list li { margin:0; padding:0; }
.ip-header-feed__item { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border-radius:8px; color:var(--ip-color-text); text-decoration:none; }
.ip-header-feed__item:hover { background:var(--ip-color-surface-subtle); }
.ip-header-feed__avatar { display:grid; place-items:center; flex-shrink:0; width:30px; height:30px; border-radius:50%; font-size:12px; font-weight:600; background:var(--ip-color-action-soft); color:var(--ip-color-action); }
.ip-header-feed__avatar .ip-icon { width:16px; height:16px; }
.ip-header-feed__item > time { flex-shrink:0; margin-top:3px; font-size:10px; color:var(--ip-color-text-muted); }
.ip-header-feed__item > .ip-icon { width:16px; height:16px; margin-top:3px; flex-shrink:0; color:var(--ip-color-text-muted); }
.ip-header-feed__copy { display:grid; gap:3px; flex:1; min-width:0; }
.ip-header-feed__copy strong { display:block; font-size:14px; font-weight:500; line-height:20px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-header-feed__item.is-unread strong { font-weight:650; }
.ip-header-feed__item.is-unread::after { content:''; width:6px; height:6px; margin-top:6px; flex-shrink:0; border-radius:50%; background:var(--ip-color-action); }
.ip-header-feed__copy small { font-size:12px; line-height:18px; color:var(--ip-color-text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-header-feed[data-header-feed="notifications"] .ip-header-feed__copy strong { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ip-header-feed__state { padding:24px 16px; margin:0; font-size:14px; line-height:1.5; color:var(--ip-color-text-muted); }
.ip-header-feed__footer { display:block; padding:12px 16px; text-align:center; border-top:1px solid var(--ip-color-border); color:var(--ip-color-link); font-size:14px; font-weight:600; }
.ip-header-feed__footer:hover { background:var(--ip-color-surface-subtle); }
.ip-workspace-body :is(.ip-header-icon,.ip-workspace-account > summary):focus-visible { outline:2px solid var(--ip-color-focus); outline-offset:3px; }
.ip-workspace-body :is(.ip-header-feed[open] .ip-header-feed__panel,.ip-workspace-account[open] .ip-workspace-account__menu) { animation:ip-header-open 150ms var(--ip-ease); transform-origin:top right; }
@keyframes ip-header-open { from { opacity:0; transform:translateY(-4px) scale(.98); } to { opacity:1; transform:none; } }
.ip-workspace-body .ip-profile-switch__control { flex-shrink:0; }
.ip-workspace-body .ip-profile-switch { min-height:36px; }
.ip-workspace-body .ip-profile-switch .ip-profile-switch__control::after { top:2px; left:2px; }
.ip-workspace-body .ip-publication-toggle { width:40px; height:36px; min-height:36px; }
.ip-workspace-body .ip-publication-toggle::before { top:7px; bottom:auto; }
.ip-workspace-body .ip-publication-toggle > span { top:10px; }
.ip-workspace-body .ip-preview :is(input.ip-input[type],select.ip-input,textarea.ip-input) { font-size:14px; padding:var(--ip-input-padding); }
.ip-workspace-body .ip-preview select.ip-input { padding-right:32px; }
.ip-workspace-body .ip-preview .ip-publications-search input.ip-input[type] { padding-left:40px; }
.ip-workspace-body .ip-publication-row__icon-action { width:var(--ip-control-target); min-width:var(--ip-control-target); height:var(--ip-control-target); border-radius:10px; }
.ip-workspace-body .ip-publication-row__icon-action .ip-icon { width:16px; height:16px; }
.ip-workspace-body :is(.ip-publications-scope a,.ip-publications-status button) { min-height:var(--ip-control-target); padding:7px 12px; font-size:14px; line-height:20px; border-radius:8px; }
.ip-workspace-body .ip-preview .ip-input--title { font-weight:600; }
.ip-workspace-body .ip-profile-icon-button { width:36px; height:36px; min-width:36px; }
.ip-workspace-body .ip-profile-card { padding:var(--ip-panel-padding); }
.ip-workspace-body .ip-profile-day { padding:12px; }
.ip-workspace-body .ip-form-field > label { line-height:20px; }
.ip-workspace-body :is(.ip-button,.ip-profile-tabs__button) .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-button:hover:not(:disabled) { transform:none; box-shadow:none; }
.ip-inbox-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px; }
.ip-inbox-toolbar > strong { font-size:14px; font-weight:600; }
.ip-messenger .ip-thread-welcome h2 { font-size:14px; font-weight:400; color:var(--ip-color-text-muted); }
.ip-messenger .ip-communication-empty h2 { font-size:14px; }
.ip-messenger .ip-communication-empty p { font-size:12px; }
.ip-workspace-body .ip-messenger > .ip-sr-only { margin:0; }
.ip-workspace-body .ip-messenger .ip-message-composer textarea.ip-input { border:1px solid var(--ip-color-border); min-height:40px; background:var(--ip-color-surface); padding:8px 12px; }
.ip-workspace-body .ip-message-composer button { min-width:36px; min-height:36px; padding:8px; }
.ip-workspace-body .ip-message-composer button .ip-icon { width:16px; height:16px; }
@media(max-width:1023px) {
 .ip-workspace-body .ip-shell-sidebar { width:min(280px,calc(100vw - 48px)); }
 .ip-workspace-body .ip-workspace-account__menu { position:fixed; top:72px; right:16px; width:300px; max-width:calc(100vw - 32px); }
}
@media(max-width:700px), (pointer:coarse) {
 .ip-workspace-body { --ip-control-target:44px; --ip-button-height:44px; --ip-input-height:44px; }
 .ip-workspace-body :is(.ip-shell-nav__link,.ip-profile-switch,.ip-profile-tabs__button,.ip-workspace-account__actor,.ip-workspace-account__actions a,.ip-header-feed__footer,.ip-publications-create__menu a) { min-height:44px; }
 .ip-workspace-body :is(.ip-workspace-topbar__menu,.ip-header-icon,.ip-workspace-theme-toggle,.ip-workspace-account > summary,.ip-profile-icon-button) { width:44px; min-width:44px; height:44px; }
 .ip-workspace-body .ip-preview :is(input.ip-input[type],select.ip-input,textarea.ip-input) { font-size:16px; }
 .ip-workspace-body .ip-publication-toggle { height:44px; min-height:44px; }
 .ip-workspace-body .ip-publication-toggle::before { top:11px; }
 .ip-workspace-body .ip-publication-toggle > span { top:14px; }
 .ip-workspace-body .ip-message-composer button { min-width:44px; min-height:44px; }
}
@media(max-width:700px) {
 .ip-workspace-body .ip-workspace-topbar { padding-inline:8px; }
 .ip-workspace-body .ip-workspace-topbar__actions { gap:2px; }
 .ip-workspace-body .ip-workspace-topbar__context { gap:4px; }
 .ip-workspace-body .ip-workspace-topbar__title { font-size:14px; }
 .ip-workspace-body .ip-workspace-topbar__public { display:none; }
 .ip-header-feed__panel { position:fixed; top:72px; right:8px; width:360px; max-width:calc(100vw - 16px); }
 .ip-header-feed__list { max-height:calc(100dvh - 210px); }
 .ip-workspace-body .ip-workspace-account__menu { right:8px; }
 .ip-workspace-body .ip-visibility-toggle { margin-top:28px; }
 .ip-workspace-body .ip-profile-tabs__button { padding:8px; }
 .ip-dashboard-panel { padding:16px; }
 .ip-messenger-inbox { border:1px solid var(--ip-color-border); }
}
@media(max-width:360px) { .ip-workspace-body .ip-workspace-topbar__title { max-width:58px; } }

/* Animal editor uses the same studio, fields and actions as other listings. */
.ip-animal-studio__aside { display:grid; gap:16px; align-content:start; }
.ip-animal-studio__aside .ip-action-card { min-width:0; }
.ip-animal-studio__aside .ip-managed-form { gap:12px; }
.ip-animal-choices { margin:0; padding:0; border:0; min-width:0; }
.ip-workspace-body .ip-animal-choices__label { margin:0 0 14px; line-height:20px; font-size:inherit; font-weight:600; color:var(--ip-color-text); }
.ip-animal-choices__options { display:flex; flex-wrap:wrap; align-content:start; gap:6px; max-height:150px; overflow:auto; padding:3px; }
.ip-animal-choices__options label { display:flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid var(--ip-color-border); border-radius:var(--ip-input-radius); cursor:pointer; transition:background .15s ease,border-color .15s ease; }
.ip-animal-choices__options label:has(:checked) { background:var(--ip-color-action-soft); border-color:var(--ip-color-action); }
.ip-animal-choices__options input, .ip-animal-consent input { accent-color:var(--ip-color-action); flex-shrink:0; }
.ip-animal-choices__options label:focus-within { outline:2px solid var(--ip-color-action); outline-offset:2px; }
.ip-workspace-body .ip-animal-consent { display:flex; align-items:start; gap:8px; font-size:var(--ip-type-small); color:var(--ip-color-text); }
.ip-animal-consent input { margin-top:4px; }
.ip-animal-readiness { margin:0 0 16px; padding-left:20px; font-size:var(--ip-type-small); color:var(--ip-color-text-secondary); }
.ip-animal-studio .ip-managed-publication form + form { margin-top:12px; }
@media (max-width:760px) { .ip-animal-choices__options label { min-height:44px; } }
@media (prefers-reduced-motion:reduce) { .ip-animal-choices__options label { transition:none; } }

.ip-workspace-body .ip-animal-studio .ip-managed-grid { align-items:start; }
.ip-workspace-body .ip-animal-studio .ip-managed-grid > .ip-form-field { margin:0; }
.ip-workspace-body .ip-animal-studio .ip-form-field { align-content:start; }
.ip-workspace-body .ip-animal-choices__options label { display:flex; margin:0; }
.ip-workspace-body .ip-animal-studio .ip-form-field input[type="checkbox"] { width:16px; height:16px; min-height:0; margin:0; padding:0; }
.ip-workspace-body .ip-animal-studio select.ip-input { height:var(--ip-input-height); }
.ip-workspace-body .ip-animal-studio__aside { padding:0; border:0; background:none; box-shadow:none; }

/* Listing editor: separate field cards and an independent contact column. */
.ip-workspace-body .ip-listing-studio { display:block; padding:0; border:0; border-radius:0; background:transparent; }
.ip-workspace-body .ip-listing-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.48fr); gap:var(--ip-panel-gap); padding:0; border:0; background:none; align-items:start; }
.ip-listing-fields { display:grid; gap:var(--ip-panel-gap); min-width:0; }
.ip-workspace-body .ip-listing-fields > :is(.ip-profile-fieldset,.ip-profile-card) { margin:0; padding:20px; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); box-shadow:none; background:var(--ip-color-surface); min-width:0; }
.ip-workspace-body .ip-listing-fields legend { float:left; width:100%; padding:0; margin:0 0 20px; border:0; color:var(--ip-color-text); font:650 var(--ip-type-section)/1.4 var(--ip-font-family); }
.ip-workspace-body .ip-listing-fields legend + * { clear:both; }
.ip-workspace-body .ip-listing-fields .ip-managed-grid { align-items:start; gap:20px 16px; }
.ip-workspace-body .ip-listing-fields .ip-managed-grid > .ip-form-field { margin:0; }
.ip-workspace-body .ip-listing-fields .ip-profile-card__head { margin:0 0 16px; }
.ip-workspace-body .ip-listing-fields .ip-profile-card__head h2 { font-size:var(--ip-type-section); }
.ip-workspace-body .ip-listing-fields textarea { min-height:100px; }
.ip-listing-contacts { min-width:0; margin:0; align-self:stretch; position:relative; }
.ip-listing-contacts__sticky { position:sticky; top:calc(var(--ip-workspace-topbar-height) + 20px); }
.ip-listing-contact-card { padding:20px; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); }
.ip-workspace-body .ip-listing-contact-card h2 { margin:0 0 20px; font-size:var(--ip-type-section); }
.ip-listing-owner { display:flex; align-items:center; gap:10px; padding:12px; margin-bottom:20px; background:var(--ip-color-surface-subtle); border-radius:8px; color:var(--ip-color-text); font-weight:600; overflow-wrap:anywhere; }
.ip-listing-owner svg { width:20px; height:20px; flex:none; color:var(--ip-color-action); }
.ip-workspace-body .ip-listing-contact-card .ip-contact-row { margin:0 0 16px; }
.ip-workspace-body .ip-listing-contact-card .ip-contact-row:last-child { margin-bottom:0; }
.ip-workspace-body .ip-listing-publication { position:static; margin-top:28px; padding:20px 0 0; border:0; border-top:1px solid var(--ip-color-border); background:none; }
.ip-workspace-body .ip-listing-publication:empty { display:none; }
.ip-workspace-body .ip-listing-publication > .ip-action-card { padding:0; border:0; background:none; }
.ip-workspace-body .ip-listing-fields .ip-managed-form__actions { margin:0; padding:0; border:0; }
.ip-workspace-body .ip-listing-fields .ip-form-state:empty { display:none; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile { width:100%; min-height:112px; border:1px dashed var(--ip-color-border); border-radius:10px; transition:border-color .18s,background-color .18s; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile:hover { border-color:var(--ip-color-action); background:var(--ip-color-surface-subtle); }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile > span { flex-direction:row; gap:10px; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile:focus-within { outline:2px solid var(--ip-color-action); outline-offset:3px; }
.ip-listing-socials { margin-top:20px; border-top:1px solid var(--ip-color-border); padding-top:16px; }
.ip-listing-socials summary { cursor:pointer; color:var(--ip-color-text); font-weight:600; min-height:40px; }
@media (max-width:1100px) { .ip-workspace-body .ip-listing-form { grid-template-columns:minmax(0,1fr) 280px; gap:var(--ip-panel-gap); } }
@media (max-width:900px) { .ip-workspace-body .ip-listing-form { grid-template-columns:minmax(0,1fr); gap:var(--ip-panel-gap); } .ip-listing-contacts__sticky { position:static; } }
@media (max-width:600px) { .ip-workspace-body .ip-listing-fields > :is(.ip-profile-fieldset,.ip-profile-card), .ip-listing-contact-card { padding:16px; } }
@media (prefers-reduced-motion:reduce) { .ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile { transition:none; } }

.ip-listing-field-wide { grid-column:1 / -1; }
.ip-upload-queue--pending .ip-upload-job img { width:80px; height:80px; object-fit:cover; border-radius:8px; }

.ip-workspace-body .ip-listing-form > :is(.ip-button-row,.ip-profile-form-actions,.ip-form-error,.ip-form-state) { grid-column:1 / -1; margin:0; }
.ip-workspace-body .ip-listing-form > .ip-form-state:empty { display:none; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile { padding:0; background:none; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile > span { border:0; background:none; }

.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile { width:112px; flex:0 0 112px; margin:0; }
.ip-workspace-body .ip-listing-fields .ip-profile-media-add-tile:only-child { width:100%; flex:1 1 auto; }
.ip-workspace-body .ip-listing-fields .ip-profile-gallery-strip { padding:0; background:none; border:0; }

/* Shared listing fields: regular rhythm, editable lists and one location input. */
.ip-workspace-body .ip-listing-fields .ip-managed-grid + .ip-form-field,
.ip-workspace-body .ip-listing-fields .ip-managed-grid + .ip-managed-grid,
.ip-workspace-body .ip-listing-fields .ip-managed-grid + .ip-profile-privacy-row { margin-top:24px; }
.ip-workspace-body .ip-listing-repeater { margin-top:24px; border:0; padding:0; }
.ip-workspace-body .ip-listing-repeater h3 { margin:0 0 12px; font-size:14px; font-weight:650; }
.ip-workspace-body .ip-listing-row { display:flex; align-items:flex-end; gap:12px; padding:16px; border:1px solid var(--ip-color-border); border-radius:12px; background:var(--ip-color-surface); }
.ip-workspace-body .ip-listing-row > .ip-form-field { flex:1 1 0; min-width:0; margin:0; }
.ip-workspace-body .ip-listing-row > .ip-profile-icon-button { flex:0 0 36px; margin:0 0 2px; }
.ip-workspace-body .ip-listing-repeater .ip-profile-add-slot { display:inline-flex; align-items:center; gap:8px; margin-top:12px; }
.ip-workspace-body .ip-listing-repeater .ip-profile-add-slot .ip-icon { width:16px; height:16px; }
.ip-workspace-body .ip-listing-label-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.ip-workspace-body .ip-listing-label-row label { margin:0; }
.ip-workspace-body .ip-button--text { padding:0; min-height:32px; color:var(--ip-color-action); background:transparent; border-color:transparent; box-shadow:none; }
.ip-workspace-body .ip-listing-map { overflow:hidden; margin:16px 0 24px; height:240px; border:1px solid var(--ip-color-border); border-radius:12px; background:var(--ip-color-surface-subtle); }
.ip-workspace-body .ip-listing-map iframe { display:block; width:100%; height:100%; border:0; }
.ip-workspace-body [data-location-map][hidden],
.ip-workspace-body [data-health-fields][hidden] { display:none; }
.ip-workspace-body .ip-listing-flag { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 4px 20px; }
.ip-workspace-body .ip-listing-flag .ip-profile-switch { flex:0 0 auto; }
.ip-workspace-body .ip-listing-flag > span { font-size:13px; font-weight:550; }
.ip-workspace-body .ip-listing-sensitive { margin:20px 0 0; }
.ip-workspace-body .ip-managed-needed-items,
.ip-workspace-body .ip-managed-donation-options { border:0; background:none; padding:0; margin-top:24px; }
@media (min-width:768px) {
  .ip-workspace-body .ip-listing-row > [data-field-variants] { flex-grow:2.5; }
}
@media (max-width:767px) {
  .ip-workspace-body .ip-listing-row { flex-wrap:wrap; padding:12px; }
  .ip-workspace-body .ip-listing-row > .ip-form-field { flex-basis:calc(100% - 56px); }
  .ip-workspace-body .ip-listing-row > .ip-form-field:not(:last-of-type) { flex-basis:100%; }
  .ip-workspace-body .ip-listing-row > [data-field-variants] { flex-basis:100%; }
  .ip-workspace-body .ip-listing-row:has(> [data-field-variants]) > .ip-profile-switch { margin-left:auto; }
  .ip-workspace-body .ip-listing-row > .ip-profile-icon-button { flex:0 0 44px; min-width:44px; min-height:44px; }
  .ip-workspace-body .ip-listing-label-row .ip-button { min-height:44px; }
  .ip-workspace-body .ip-listing-map { height:220px; }
}

/* Entity editors share the listing grid and field rhythm from the first save. */
.ip-entity-editor-fields { min-width:0; border:0; padding:0; margin:0; }
.ip-workspace-body .ip-entity-description-grid { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); }
.ip-entity-media-grid { display:grid; grid-template-columns:minmax(120px,.6fr) minmax(0,1.4fr); gap:20px; }
.ip-entity-media-grid h3 { margin:0 0 12px; font-size:var(--ip-type-small); }
.ip-entity-editor-actions { grid-column:1/-1; display:flex; justify-content:flex-end; border-top:1px solid var(--ip-color-border); padding-top:24px; }
.ip-entity-hours { display:grid; gap:20px; margin:24px 0; }
.ip-workspace-body [data-visit-weekly-hours][hidden] + .ip-form-field { margin-top:24px; }
.ip-entity-editor .ip-listing-fields details > summary { cursor:pointer; font-size:var(--ip-type-section); font-weight:650; padding:8px 0; }
.ip-entity-editor .ip-listing-fields details > fieldset { margin-top:24px; padding:0; border:0; }
.ip-entity-editor .ip-listing-fields details > fieldset legend { float:none; margin-bottom:16px; }
.ip-workspace-body [data-schedule-fields].is-disabled { opacity:.55; }
[data-group-motivation][hidden] { display:none; }
@media(max-width:600px) { .ip-workspace-body .ip-entity-description-grid,.ip-entity-media-grid { grid-template-columns:minmax(0,1fr); } .ip-entity-editor-actions .ip-button { width:100%; } }

.ip-workspace-body .ip-listing-row:has(> .ip-form-field textarea) { flex-wrap:wrap; }
.ip-workspace-body .ip-listing-row > .ip-form-field:has(textarea) { flex-basis:calc(100% - 56px); }

.ip-workspace-body .ip-listing-fields .ip-listing-repeater + .ip-form-field,
.ip-workspace-body .ip-listing-fields .ip-listing-repeater + .ip-listing-repeater { margin-top:24px; }
.ip-workspace-body .ip-managed-donation-options__empty { border:0; background:none; padding:0; }

.ip-workspace-body .ip-publications-workspace .ip-entity-create-card { padding:0; border:0; background:transparent; overflow:visible; }

.ip-workspace-body [data-location-map][hidden] + .ip-form-field { margin-top:24px; }

.ip-workspace-body .ip-entity-editor > .ip-profile-form { width:100%; max-width:none; }

.ip-workspace-body .ip-listing-row:has(> .ip-form-field textarea) > .ip-form-field { flex-basis:calc((100% - 12px) / 2); }
.ip-workspace-body .ip-listing-row:has(> .ip-form-field textarea) > .ip-form-field:has(textarea) { flex-basis:calc(100% - 48px); }
@media(max-width:767px) {
  .ip-workspace-body .ip-listing-row:has(> .ip-form-field textarea) > .ip-form-field { flex-basis:100%; }
  .ip-workspace-body .ip-listing-row:has(> .ip-form-field textarea) > .ip-form-field:has(textarea) { flex-basis:calc(100% - 56px); }
}

/* Short, one-time entrances and direct feedback; no continuous motion. */
@media (prefers-reduced-motion:no-preference) {
 .ip-publication-bars[data-chart-motion="pending"] .ip-chart-day__bar { transform:scaleY(0); transform-origin:bottom; }
 .ip-publication-bars[data-chart-motion="enter"] .ip-chart-day__bar { transform-origin:bottom; animation:ip-chart-grow 300ms var(--ip-ease) var(--ip-chart-delay,0ms) backwards; }
 .ip-presence-grid[data-chart-motion="pending"] .ip-presence-day { opacity:0; }
 .ip-presence-grid[data-chart-motion="enter"] .ip-presence-day { animation:ip-chart-cell 180ms var(--ip-ease) var(--ip-chart-delay,0ms) backwards; }
 .ip-workspace-body [data-row-motion="added"], .ip-workspace-body [data-visit-weekly-hours]:not([hidden]) { animation:ip-field-enter 180ms var(--ip-ease); }
 .ip-workspace-body :is(.ip-button,.ip-profile-icon-button,.ip-header-icon):not(:disabled):active { transform:scale(.97); }
 .ip-workspace-body .ip-profile-choice-chip:not(:has(input:disabled)):active { transform:scale(.98); }
 .ip-workspace-body .ip-input { transition:border-color 150ms ease,box-shadow 150ms ease; }
}
@keyframes ip-chart-grow { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes ip-chart-cell { from { opacity:0; transform:scale(.9); } to { opacity:1; transform:scale(1); } }
@keyframes ip-field-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }

/* Selected and saved photos share the same tiled gallery. */
.ip-workspace-body .ip-listing-fields .ip-profile-media-status:empty { display:none; }
.ip-workspace-body .ip-listing-fields [data-media-grid] { display:grid; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); gap:12px; overflow:visible; padding:0; }
.ip-workspace-body .ip-listing-fields [data-media-grid="logo"] { grid-template-columns:repeat(auto-fill,minmax(104px,128px)); }
.ip-workspace-body [data-media-grid] > .ip-profile-media-item { display:block; width:100%; min-width:0; }
.ip-workspace-body [data-media-grid] > .ip-profile-media-item > img,
.ip-workspace-body [data-media-grid] > .ip-upload-job > img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border:1px solid var(--ip-color-border); border-radius:12px; }
.ip-workspace-body .ip-listing-fields [data-media-grid] > .ip-profile-media-add-tile { display:grid; width:100%; height:auto; min-height:0; aspect-ratio:1; padding:0; margin:0; place-items:center; border:1px dashed var(--ip-color-border-strong); border-radius:12px; background:var(--ip-color-surface-subtle); }
.ip-workspace-body .ip-listing-fields [data-media-grid] > .ip-profile-media-add-tile > span { flex-direction:column; gap:8px; font-size:var(--ip-type-caption); }
.ip-workspace-body [data-media-grid] .ip-profile-media-delete { top:4px; right:4px; width:36px; height:36px; min-height:36px; border-radius:50%; z-index:2; }
.ip-workspace-body [data-media-grid] > .ip-upload-job { position:relative; display:block; min-width:0; padding:0; margin:0; border:0; background:none; }
.ip-workspace-body [data-media-grid] > .ip-upload-job .ip-upload-job__name,
.ip-workspace-body [data-media-grid] > .ip-upload-job[data-state="queued"] .ip-upload-job__state { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.ip-workspace-body [data-media-grid] > .ip-upload-job .ip-upload-job__state { display:block; margin-top:6px; font-size:12px; }
.ip-workspace-body [data-media-grid] > .ip-upload-job > .ip-button { width:100%; margin-top:6px; min-height:36px; font-size:12px; padding:6px; }
.ip-workspace-body [data-media-grid] > .ip-upload-job[data-state="error"] > img { border-color:var(--ip-color-error); }
.ip-workspace-body .ip-listing-flag { padding:16px; margin-bottom:16px; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); }
.ip-workspace-body .ip-listing-publication { padding:20px; margin-top:16px; border:1px solid var(--ip-color-border); border-radius:var(--ip-panel-radius); background:var(--ip-color-surface); }
@media (max-width:600px), (pointer:coarse) {
 .ip-workspace-body [data-media-grid] .ip-profile-media-delete { width:44px; height:44px; min-height:44px; }
}

/* Listing groups share one field rhythm and start on the same baseline. */
.ip-workspace-body .ip-listing-form > .ip-listing-contacts { margin:0; padding:0; }
.ip-workspace-body .ip-listing-fields > .ip-profile-card > legend + .ip-listing-repeater { margin-top:0; }
.ip-workspace-body .ip-listing-fields .ip-form-field + .ip-managed-grid,
.ip-workspace-body .ip-listing-fields .ip-profile-privacy-row + .ip-form-field,
.ip-workspace-body .ip-listing-fields .ip-form-field + .ip-profile-privacy-row,
.ip-workspace-body [data-group-motivation] { margin-top:24px; }
.ip-workspace-body .ip-listing-fields .ip-profile-card > [data-health-fields="blood"].ip-form-field { margin-top:24px; }

.ip-workspace-body .ip-group-listing-studio { display:block; }
.ip-workspace-body .ip-group-listing-studio .ip-group-form { width:100%; max-width:none; }
.ip-workspace-body .ip-group-listing-studio .ip-group-status { position:static; margin-top:16px; }
.ip-workspace-body .ip-group-listing-studio .ip-listing-fields > .ip-profile-card { margin:0; }

/* Match the label baseline and control height of Tipo without spacing each chip as a field label. */
.ip-workspace-body .ip-listing-fields .ip-field-label { display:block; line-height:20px; color:var(--ip-color-text); }
.ip-workspace-body .ip-listing-fields .ip-profile-choice-chip { margin:0; }
.ip-workspace-body .ip-listing-fields .ip-profile-choice-chip > span { min-height:var(--ip-input-height); }
@media (max-height:760px) { .ip-listing-contacts__sticky { position:static; } }

/* Shared section navigation: the same segmented control as Notificaciones. */
.ip-segmented > a { display:flex; align-items:center; text-decoration:none; }
.ip-segmented > :is(button,a) { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; transition:color 150ms ease,background-color 150ms ease,box-shadow 150ms ease; }
.ip-segmented > :is(button,a):hover { color:var(--ip-color-text); }
.ip-segmented > :is(button,a):focus-visible { outline:2px solid var(--ip-color-action); outline-offset:-1px; }
.ip-section-tabs { width:fit-content; max-width:100%; min-width:0; justify-self:start; overflow-x:auto; scrollbar-width:none; }
.ip-section-tabs::-webkit-scrollbar { display:none; }
.ip-section-tabs [data-team-count] { min-width:18px; padding:1px 5px; border-radius:5px; font-size:11px; line-height:1.4; background:var(--ip-color-surface-related); color:var(--ip-color-text-muted); }
.ip-section-tabs [data-team-count]:empty { display:none; }
.ip-ong-workspace:not(.ip-care) > .ip-section-tabs { margin-bottom:20px; }
.ip-settings-layout--tabs { grid-template-columns:minmax(0,1fr); gap:20px; }
@media(max-width:640px) { .ip-segmented > :is(button,a) { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .ip-segmented > :is(button,a) { transition:none; } }
