/* Shared surfaces use the existing four adjustable icon colours. */
.ui-icon { stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.portal-loader { display:inline-flex; align-items:center; justify-content:center; flex:0 0 38px; position:relative; width:38px; min-width:38px; max-width:38px; height:38px; box-sizing:border-box; }
.portal-loader-art { display:block; width:100%; height:100%; flex:0 0 auto; overflow:visible; animation:portal-dog-chase 2s linear infinite; }
.manual-refresh-button .manual-refresh-mascot { display:block; width:28px; height:28px; flex:0 0 auto; animation:none; }
.manual-refresh-button .dog-waiting { opacity:.72; filter:saturate(.65); }
.manual-refresh-button .dog-chasing { display:none; }
.manual-refresh-button.is-refreshing .dog-waiting { display:none; }
.manual-refresh-button.is-refreshing .dog-chasing { display:block; opacity:1; animation:portal-dog-chase 2s linear infinite; }
.dog-chasing-tail { transform-box:view-box; transform-origin:70px 53px; animation:portal-dog-tail .38s ease-in-out infinite alternate; }
.dog-chasing-forelegs { transform-box:view-box; transform-origin:28px 53px; animation:portal-dog-stride .3s ease-in-out infinite alternate; }
.dog-chasing-hindlegs { transform-box:view-box; transform-origin:66px 54px; animation:portal-dog-stride .3s ease-in-out -.3s infinite alternate; }
[aria-busy="false"] > .portal-loader .portal-loader-art { animation:none; }
.startup-status { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 16px; font-size:.94rem; }
.startup-status[hidden] { display:none; }
.startup-status-text { min-width:0; }
.startup-status.warning > .portal-loader { display:none; }
.startup-status.warning { grid-template-columns:minmax(0,1fr) auto; }
.startup-status.warning .startup-status-text { color:var(--text); }
.startup-status > .button { min-height:40px; padding:8px 12px; white-space:nowrap; }
.topbar-actions > .button { flex-shrink:0; white-space:nowrap; }
.topbar-actions .manual-refresh-button [data-refresh-label] { white-space:nowrap; overflow-wrap:normal; }
.dashboard-loading { gap:12px; align-content:center; min-height:180px; }
.dashboard-loading .portal-loader { width:58px; min-width:58px; max-width:58px; height:58px; }
.consent-link { display:inline; padding:0; border:0; border-radius:2px; background:transparent; font:inherit; color:var(--primary); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.consent-dialog { max-width:760px; width:calc(100% - 32px); max-height:85dvh; padding:24px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); color:var(--text); }
.consent-copy { white-space:pre-wrap; overflow-wrap:anywhere; margin:20px 0; line-height:1.6; }
.authority-panel { margin-bottom:20px; }
.authority-person { margin:12px 0; }
.authority-person > form { margin-top:16px; }
.authority-panel fieldset { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-width:0; }
.authority-panel legend { grid-column:1/-1; }
.authority-panel textarea { min-height:180px; resize:vertical; }
.authority-journal-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin:24px 0 12px; }
.authority-journal-filters label { flex:1 1 200px; }
.authority-journal { max-height:620px; overflow:auto; overscroll-behavior:contain; }
.authority-journal-row { display:flex; flex-direction:column; gap:4px; padding:12px; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.authority-journal-row small { color:var(--muted); }
.record-action-menu { justify-content:flex-end; margin-left:auto; }
.achievement-actions:has(> .context-action-menu),.queue-actions:has(> .context-action-menu),.resource-card-actions:has(> .context-action-menu) { justify-content:flex-end; }
@keyframes portal-dog-chase { to { transform:rotate(360deg); } }
@keyframes portal-dog-tail { from { transform:rotate(-7deg); } to { transform:rotate(9deg); } }
@keyframes portal-dog-stride { from { transform:rotate(-4deg); } to { transform:rotate(4deg); } }
@media(prefers-reduced-motion:reduce) { .portal-loader-art,.dog-chasing-tail,.dog-chasing-forelegs,.dog-chasing-hindlegs,.manual-refresh-button.is-refreshing .dog-chasing { animation:none; } }
@media(max-width:640px) {
  .authority-panel fieldset { grid-template-columns:1fr; }
  .startup-status { grid-template-columns:38px minmax(0,1fr); align-items:start; gap:8px 12px; }
  .startup-status.warning { grid-template-columns:minmax(0,1fr); }
  .startup-status > button { grid-column:2; justify-self:start; }
  .startup-status.warning > button { grid-column:1; }
  .consent-dialog { padding:18px; }
}
@media(max-width:760px) {
  .topbar-actions .manual-refresh-button { padding:.55rem; min-width:44px; min-height:44px; }
  .topbar-actions .manual-refresh-button [data-refresh-label] { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
}
