/* Shared access and feedback, v20.0. */
.ro-skip-link{position:fixed;left:12px;top:-100px;z-index:10000;padding:12px;background:#f3ce4d;color:#101714;border-radius:8px}
.ro-skip-link:focus{top:12px}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #f3ce4d!important;outline-offset:3px!important}
.ro-connection-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:12px;border:1px solid #b79542;border-radius:10px;color:#fff0c8;background:#342a16}
.ro-connection-notice[hidden]{display:none}
.ro-connection-notice .btn{flex:none;min-height:44px}
.ro-conflict-reason{display:block;margin-top:6px;color:#f3b8ae;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.toast{display:flex!important;align-items:center;gap:12px;max-width:min(680px,calc(100vw - 32px))!important;box-sizing:border-box;z-index:10000!important;line-height:1.5}
.toast>span{flex:1;min-width:0;overflow-wrap:anywhere}
.toast .btn,.ro-toast-close{flex:none;min-height:44px;min-width:44px}
.ro-toast-close{border:0;background:transparent;color:inherit;font-size:24px;cursor:pointer}
#actions{flex-wrap:wrap;gap:8px}
#content[tabindex="-1"]:focus{outline:none}
@media(pointer:coarse){.btn,.name-link,.ro-remove-person,summary{min-height:44px!important}.btn.icon,.ro-remove-person{min-width:44px!important}}
@media(max-width:800px){input,select,textarea{font-size:16px!important}.ro-connection-notice{flex-wrap:wrap}.toast{flex-wrap:wrap;bottom:90px!important}.toast>span{flex-basis:calc(100% - 60px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Textareas are native scroll containers: declare the allowed vertical gesture
   here too, so the browser does not consume horizontal drags before the pager. */
@media(max-width:900px) and (pointer:coarse){
  .mobile-swipe-surface textarea:not([wrap="off"]){touch-action:pan-y pinch-zoom}
}
/* Shared save controls stay within the visible viewport, including the keyboard. */
.ro-save-dock{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:12px;background:#102123;border:1px solid #49615a;border-radius:10px;box-sizing:border-box;z-index:90}
.ro-save-dock.on-page{position:fixed;bottom:calc(12px + var(--keyboard-inset,0px));right:20px;max-width:calc(100vw - 40px)}
.ro-save-dock.in-dialog{position:sticky;bottom:0;margin-top:16px;z-index:2}
.ro-draft-status{margin-right:auto;font-size:13px;color:#d9e5df}
.ro-has-save-dock{padding-bottom:110px!important}
.ro-field-error{display:block;color:#ffc8bb;font-size:13px;line-height:1.4;margin-top:5px}
[aria-invalid="true"]{border-color:#ff9e88!important;box-shadow:0 0 0 1px #ff9e88!important}
.ro-save-error{color:#ffc8bb;padding:12px;border:1px solid #a55a49;border-radius:8px}
.ro-person-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;flex-wrap:wrap;margin-top:10px}
.ro-update-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;margin-bottom:12px;background:#342a16;border:1px solid #b79542;border-radius:10px}
@media(max-width:900px){.ro-save-dock.on-page{left:10px;right:10px;max-width:none;bottom:calc(76px + env(safe-area-inset-bottom) + var(--keyboard-inset,0px))}.ro-save-dock .ro-draft-status{flex-basis:100%}.ro-keyboard-open .ro-save-dock.on-page{bottom:calc(8px + var(--keyboard-inset,0px))}.ro-keyboard-open .mobile-pager{display:none!important}.modal:has(.ro-save-dock){max-height:calc(94dvh - var(--keyboard-inset,0px));overflow-y:auto}.ro-has-save-dock{padding-bottom:160px!important}}
.ro-save-dock .btn{width:auto!important;min-height:44px;flex:0 1 auto}
body:has(.ro-save-dock.on-page) .toast{bottom:calc(24px + var(--save-dock-height,150px) + var(--keyboard-inset,0px))!important}
.modal.ro-has-save-dock{padding-bottom:0!important}
.modal.sheet>.ro-save-dock{flex-shrink:0}
@media(max-width:900px){body:has(.ro-save-dock.on-page) .toast{bottom:calc(88px + env(safe-area-inset-bottom) + var(--save-dock-height,150px) + var(--keyboard-inset,0px))!important}body.ro-keyboard-open:has(.ro-save-dock.on-page) .toast{bottom:calc(20px + var(--save-dock-height,150px) + var(--keyboard-inset,0px))!important}}
