/* Scoped to the collaborator editor: other dialogs retain their own layout. */
#admin-person-modal { padding: 20px; color: #293c39; }
#admin-person-modal [hidden] { display: none !important; }
#admin-person-modal .modal-backdrop { background: rgba(26,39,36,.48); backdrop-filter: blur(5px); }
#admin-person-modal .admin-editor-sheet {
  display: flex; flex-direction: column; width: min(1180px,100%);
  max-height: calc(100dvh - 40px); overflow: hidden;
  border: 1px solid #e0e5dd; border-radius: 20px; background: #f4f5f0;
  box-shadow: 0 24px 80px rgba(20,40,32,.23);
}
#admin-person-modal .admin-editor-head { position: relative; flex: none; align-items: center; padding: 18px 24px; background: #fffefa; border-bottom: 1px solid #e0e5dd; backdrop-filter: none; }
#admin-person-modal .admin-editor-head h2 { margin: 0; color: #293c39; font-family: 'Fraunces',Georgia,serif; font-size: 27px; font-weight: 500; letter-spacing: -.02em; }
#admin-person-modal .admin-editor-head > div > p:last-child { margin-top: 5px; color: #627169; }
#admin-person-modal .modal-close { width: 38px; height: 38px; border: 1px solid #dce3da; border-radius: 10px; color: #4a6257; background: #f2f5ef; }
#admin-person-modal #admin-person-form { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #a0b3a4 #f4f5f0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 14px; padding: 18px 20px 0; scroll-padding: 18px 0 90px; }
#admin-person-modal .admin-editor-block { grid-column: 1/-1; display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; padding: 18px; border: 1px solid #dfe5db; border-radius: 14px; background: #fffefa; }
#admin-person-modal :is(.editor-identity,.editor-contract) { grid-column: auto; align-self: stretch; align-content: start; }
#admin-person-modal :is(.schedule-block,.facebook-schedule-block) { grid-column: auto; align-content: start; }
#admin-person-modal .admin-editor-block > * { grid-column: 1/-1; min-width: 0; }
#admin-person-modal .admin-editor-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-bottom: 11px; border-bottom: 1px solid #e7ebe3; }
#admin-person-modal .admin-editor-label b { color: #2c4c3e; font-size: 14px; font-weight: 650; }
#admin-person-modal .admin-editor-label span { margin: 0; color: #637168; line-height: 1.45; }
#admin-person-modal .admin-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-items: start; }
#admin-person-modal .admin-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; color: #465b50; font-weight: 600; }
#admin-person-modal .admin-field small { color: #68766c; font-weight: 400; }
#admin-person-modal :is(input:not([type='checkbox']):not([type='hidden']),select,textarea) {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 40px; margin: 0;
  padding: 9px 11px; border: 1px solid #cfdacf; border-radius: 9px;
  color: #293f33; background: #fff; font-family: inherit; font-weight: 400;
  box-shadow: none; accent-color: #197467; caret-color: #197467;
}
#admin-person-modal input::placeholder { color: #728075; }
#admin-person-modal :is(input,select,textarea,button):focus-visible { outline: 2px solid #197467; outline-offset: 2px; box-shadow: none; }
#admin-person-modal :is(input,select,button):disabled { cursor: not-allowed; color: #69756c; background: #eef1eb; opacity: .75; }
#admin-person-modal .admin-area-field { grid-template-columns: minmax(0,1fr); gap: 5px; }
#admin-person-modal :is(.admin-area-field,.admin-area-create) button { justify-self: start; min-height: 30px; height: auto; padding: 5px 9px; border: 1px solid #d4dfd2; border-radius: 7px; color: #20674f; background: #eef5ed; font-weight: 600; }
#admin-person-modal .admin-pending-check { margin: 0; align-items: center; padding: 11px 12px; border: 1px solid #e6d9c2; border-radius: 10px; background: #faf5eb; color: #735627; }
#admin-person-modal .admin-pending-check:has(input:checked) { border-color: #c39249; background: #fff0d6; }
#admin-person-modal .admin-pending-check small { color: #806842; }
#admin-person-modal input[type='checkbox'] { flex: none; width: 17px; height: 17px; accent-color: #197467; }
#admin-person-modal .admin-general-hours { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 500px; gap: 12px; }
#admin-person-modal :is(.admin-schedule-head,.admin-schedule-row) { grid-template-columns: 32px minmax(110px,1fr) minmax(100px,.85fr) minmax(100px,.85fr); gap: 6px; }
#admin-person-modal .admin-schedule-head > :last-child { display: none; }
#admin-person-modal .admin-schedule-row .schedule-link { grid-column: 2/-1; }
#admin-person-modal :is(.admin-schedule-head,.facebook-schedule-head) { margin: 0; padding: 0 12px; color: #617165; letter-spacing: 0; text-transform: none; font-size: 11px; font-weight: 600; }
#admin-person-modal :is(.admin-schedule-grid,.facebook-schedule-grid) { border: 1px solid #dfe5dc; border-radius: 10px; background: #fff; }
#admin-person-modal :is(.admin-schedule-row,.facebook-schedule-row) { padding: 7px 12px; min-height: 50px; border: 0; border-bottom: 1px solid #e5eae1; background: #fffefa; }
#admin-person-modal :is(.admin-schedule-row,.facebook-schedule-row):last-child { border-bottom: 0; }
#admin-person-modal :is(.admin-schedule-row,.facebook-schedule-row) > b { color: #405a49; font-size: 12px; }
#admin-person-modal .admin-schedule-row.off { background: #f0f3ed; }
#admin-person-modal .admin-schedule-row.off input { opacity: 1; }
#admin-person-modal .admin-schedule-grid:not(.mixed) .schedule-link { display: none; }
#admin-person-modal .facebook-schedule-head,
#admin-person-modal .facebook-schedule-row { grid-template-columns: 32px 70px minmax(100px,1fr) minmax(100px,1fr); gap: 6px; }
#admin-person-modal :is(.facebook-schedule-row,.admin-schedule-row) :is(input,select) { padding-inline: 6px; }
#admin-person-modal .facebook-schedule-note { display: grid; gap: 4px; }
#admin-person-modal .facebook-schedule-block { background: #fffefa; box-shadow: none; }
#admin-person-modal .facebook-schedule-label { align-items: center; }
#admin-person-modal .facebook-schedule-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: #eaf1ef; color: #226b56; box-shadow: none; }
#admin-person-modal .facebook-schedule-label > span:last-child > span { color: #637168 !important; }
#admin-person-modal .facebook-schedule-note { padding: 10px 12px; border: 0; border-radius: 8px; color: #325e4c; background: #eef5ec; }
#admin-person-modal .facebook-schedule-note span { color: #536e5d !important; }
#admin-person-modal .admin-history-list { max-height: 180px; border-color: #dfe5dc; background: #fafbf7; }
#admin-person-modal .admin-history-list article { grid-template-columns: 110px minmax(0,1fr); border-color: #e5eae1; }
#admin-person-modal .admin-history-list :is(time,small) { color: #637168; }
#admin-person-modal .admin-editor-message { grid-column: 1/-1; margin: 0; }
#admin-person-modal .admin-editor-foot { position: sticky; bottom: 0; z-index: 5; grid-column: 1/-1; margin: 0 -20px; padding: 12px 20px; border-top: 1px solid #dce4d8; background: #fffefa; }
#admin-person-modal .admin-editor-foot button { min-height: 42px; border-radius: 9px; padding: 0 20px; font-weight: 600; box-shadow: none; }
#admin-person-modal .admin-primary-action { background: #197467; color: white; border: 1px solid #197467; }
#admin-person-modal .admin-secondary-action { background: #fffefa; color: #465e4f; border: 1px solid #d0dbcd; }
/* Progressive enhancement: keyboard and native selection behavior stay intact. */
@supports (appearance: base-select) {
  #admin-person-modal select,
  #admin-person-modal select::picker(select) { appearance: base-select; }
  #admin-person-modal select { align-items: center; }
  #admin-person-modal select::picker-icon { color: #57806b; transition: rotate 150ms ease; }
  #admin-person-modal select:open::picker-icon { rotate: 180deg; }
  #admin-person-modal select::picker(select) { margin-top: 5px; padding: 5px; border: 1px solid #cfdacf; border-radius: 12px; background: #fffefa; box-shadow: 0 12px 30px #203d3226; max-height: min(320px,45vh); overflow-y: auto; font: 13px Inter,sans-serif; color: #293f33; }
  #admin-person-modal option { padding: 10px 12px; min-height: 38px; border-radius: 7px; gap: 10px; font-weight: 400; }
  #admin-person-modal option:checked { color: #156046; background: #e8f2e6; font-weight: 600; }
  #admin-person-modal option:hover,
  #admin-person-modal option:focus { color: #184f3d; background: #eef3e9; outline: none; }
  #admin-person-modal option::checkmark { color: #197467; }
}
@media(max-width:900px) {
  #admin-person-modal { padding: 12px; }
  #admin-person-modal .admin-editor-sheet { max-height: calc(100dvh - 24px); }
  #admin-person-modal #admin-person-form { grid-template-columns: minmax(0,1fr); }
  #admin-person-modal :is(.admin-schedule-head,.admin-schedule-row) { grid-template-columns: 40px minmax(120px,1fr) 115px 115px; }
  #admin-person-modal .admin-schedule-head > :last-child { display: none; }
  #admin-person-modal .admin-schedule-row .schedule-link { grid-column: 2/-1; }
  #admin-person-modal .admin-schedule-grid:not(.mixed) .schedule-link { display: none; }
}
@media(min-width:901px) and (max-width:1100px) {
  #admin-person-modal :is(.schedule-block,.facebook-schedule-block) { grid-column: 1/-1; }
}
@media(max-width:600px) {
  #admin-person-modal { padding: 0; }
  #admin-person-modal .admin-editor-sheet { max-height: 100dvh; border-radius: 16px 16px 0 0; }
  #admin-person-modal .admin-editor-head { padding: 15px 16px; }
  #admin-person-modal .admin-editor-head h2 { font-size: 24px; }
  #admin-person-modal #admin-person-form { padding: 12px 12px 0; gap: 10px; }
  #admin-person-modal .admin-editor-block { padding: 14px; }
  #admin-person-modal .admin-form-grid { grid-template-columns: minmax(0,1fr); }
  #admin-person-modal .admin-form-grid > * { grid-column: 1; }
  #admin-person-modal .admin-schedule-head { display: none; }
  #admin-person-modal .admin-schedule-row { grid-template-columns: 34px minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  #admin-person-modal .admin-schedule-row .schedule-mode { grid-column: 2/-1; }
  #admin-person-modal .admin-schedule-row input:first-of-type { grid-column: 2; }
  #admin-person-modal .facebook-schedule-head,
  #admin-person-modal .facebook-schedule-row { grid-template-columns: 30px 60px minmax(0,1fr) minmax(0,1fr); gap: 5px; padding-inline: 6px; }
  #admin-person-modal :is(.facebook-schedule-row,.admin-schedule-row) input { padding-inline: 5px; }
  #admin-person-modal .facebook-schedule-note { display: grid; gap: 4px; }
  #admin-person-modal .admin-editor-foot { margin-inline: -12px; padding: 10px 12px max(10px,env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { #admin-person-modal select::picker-icon { transition: none; } }

#admin-person-modal .editor-date-control { position: relative; display: block; min-width: 0; }
#admin-person-modal .editor-time-control { display: grid; grid-template-columns: minmax(0,1fr); min-width: 0; width: 100%; }
#admin-person-modal .facebook-time-field > .editor-time-control { display: grid; }
#admin-person-modal .editor-time-control select { width: 100%; min-width: 0; min-height: 40px; padding: 7px 5px; font-variant-numeric: tabular-nums; }
#admin-person-modal .facebook-day-toggle { box-sizing: border-box; width: 66px; min-width: 0; max-width: 100%; padding: 0 5px 0 37px; min-height: 40px; grid-column: auto; }
#admin-person-modal .facebook-day-toggle input { position: absolute; width: 1px; height: 1px; }
#admin-person-modal .facebook-schedule-row.is-active .facebook-day-toggle { background: #e8f3eb; border-color: #b2d3be; color: #236548; }
#admin-person-modal .facebook-schedule-row.is-active .facebook-day-toggle::before { background: #197467; }
#admin-person-modal .facebook-time-field { grid-column: auto; }
#admin-person-modal :is(.admin-schedule-head,.admin-schedule-row) { grid-template-columns: 30px minmax(100px,1fr) minmax(124px,1fr) minmax(124px,1fr); }
#admin-person-modal :is(.facebook-schedule-head,.facebook-schedule-row) { grid-template-columns: 30px 66px minmax(124px,1fr) minmax(124px,1fr); }
@supports (appearance: base-select) {
  #admin-person-modal .editor-time-control select::picker(select) { animation: editor-time-open 160ms cubic-bezier(.16,1,.3,1); }
  #admin-person-modal .editor-time-control select:open { border-color: #559b83; background: #f0f5ef; }
  #admin-person-modal .editor-time-control select::picker-icon { font-size: 10px; }
}
@keyframes editor-time-open { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
@media(max-width:600px) {
  #admin-person-modal :is(.admin-schedule-head,.admin-schedule-row) { grid-template-columns: 30px minmax(0,1fr) minmax(0,1fr); }
  #admin-person-modal .admin-schedule-row > .editor-time-control:first-of-type { grid-column: 2; }
  #admin-person-modal .facebook-schedule-head { display: none; }
  #admin-person-modal .facebook-schedule-row { grid-template-columns: 30px minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  #admin-person-modal .facebook-day-toggle { grid-column: 2/-1; justify-self: start; }
  #admin-person-modal .facebook-time-field:nth-of-type(2) { grid-column: 2; }
  #admin-person-modal .facebook-time-field:nth-of-type(3) { grid-column: 3; }
  #admin-person-modal .facebook-time-field > span:first-child { display: block; }
}
@media(prefers-reduced-motion:reduce) { #admin-person-modal .editor-time-control select::picker(select) { animation: none; } }
#admin-person-modal .editor-date-trigger { width: 100%; min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 11px; border: 1px solid #cfdacf; border-radius: 9px; background: white; color: #293f33; text-align: left; font-weight: 400; }
#admin-person-modal .editor-date-trigger::after { content: ''; flex: none; width: 15px; height: 15px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7'%3E%3Crect x='4' y='5' width='16' height='16' rx='2'/%3E%3Cpath d='M8 2v6M16 2v6M4 11h16'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat; }
#admin-person-modal .editor-date-trigger[aria-expanded='true'] { border-color: #197467; }
#admin-person-modal .editor-calendar { position: absolute; z-index: 10; top: calc(100% + 6px); right: 0; display: grid; gap: 10px; width: min(304px,calc(100vw - 64px)); padding: 12px; box-sizing: border-box; border: 1px solid #ccd9c9; border-radius: 13px; color: #293f33; background: #fffefa; box-shadow: 0 12px 32px #203d322e; }
#admin-person-modal .editor-calendar-head { display: grid; grid-template-columns: 28px minmax(0,1fr) 70px 28px; gap: 4px; align-items: center; }
#admin-person-modal .editor-calendar-head :is(input,select) { min-height: 34px; padding: 5px; font-size: 12px !important; }
#admin-person-modal .editor-calendar button { border: 0; border-radius: 7px; color: #31523f; background: transparent; min-height: 32px; padding: 4px; cursor: pointer; }
#admin-person-modal .editor-calendar-head > button { font-size: 22px !important; }
#admin-person-modal .editor-calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
#admin-person-modal .editor-calendar-days > span { text-align: center; color: #6b796e; font-size: 11px; padding: 4px 0; }
#admin-person-modal .editor-calendar-days button { font-variant-numeric: tabular-nums; }
#admin-person-modal .editor-calendar button:hover { background: #e8f1e4; }
#admin-person-modal .editor-calendar-days button[aria-current='date'] { box-shadow: inset 0 0 0 1px #85aa8d; }
#admin-person-modal .editor-calendar-days button[aria-pressed='true'] { color: white; background: #197467; }
#admin-person-modal .editor-calendar-foot { display: flex; justify-content: space-between; gap: 5px; padding-top: 8px; border-top: 1px solid #e0e7db; }
@media(max-width:600px) {
  #admin-person-modal .editor-calendar { right: auto; left: 0; }
  #admin-person-modal .editor-calendar button { min-height: 36px; }
}

#admin-person-modal .admin-editor-inline-action { align-self: start; justify-self: start; width: fit-content; min-height: 32px; padding: 6px 10px; border: 1px solid #cbdacc; border-radius: 7px; background: #edf4eb; color: #27634d; font: 600 12px/1.4 Inter,sans-serif; cursor: pointer; }
#admin-person-modal .admin-editor-inline-action:hover { background: #e2edde; }
#admin-institution-create:not([hidden]) { display: grid; gap: 8px; margin-top: 8px; }
#admin-institution-create[hidden] { display: none; }
#admin-contract-estimate { line-height: 1.5; }
