.resource-picker,.resource-picker-editor-modal
{
    --border:var(--border-default);
    --accent:var(--brand-green-400);
    --text:var(--text-primary);
    --surface-2:var(--surface-main)
}

.resource-picker.modal,.resource-picker-editor-modal.modal
{
    width:min(980px,calc(100vw - 48px));
    height:min(800px,calc(100dvh - 48px));
    max-height:calc(100dvh - 48px);
    display:flex;
    flex-direction:column;
    overflow:hidden
}

#modalBackdrop>.membership-picker.modal
{
    width:min(980px,calc(100vw - 48px));
    height:min(800px,calc(100dvh - 48px));
    max-height:calc(100dvh - 48px);
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    overflow:hidden;
}
#modalBackdrop>.membership-picker.modal:has(.album-picker-create:not([hidden]))
{
    height:min(600px,calc(100dvh - 48px));
}
.membership-picker .album-picker-body { display:flex; flex-direction:column; min-height:0; padding:20px 24px; overflow:hidden; }
.membership-picker .album-picker-browse { display:grid; grid-template-rows:auto minmax(0,1fr); gap:16px; flex:1; min-height:0; }
.membership-picker [hidden] { display:none!important; }
.membership-picker .album-picker-results-panel { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.membership-picker .album-picker-results { flex:1; min-height:0; max-height:none; height:auto; overflow:auto; scrollbar-gutter:stable; border:0; border-radius:0; background:transparent; }
.membership-picker-toolbar { display:flex; align-items:center; gap:8px; min-width:0; overflow:hidden; scrollbar-gutter:stable; }
.membership-picker-toolbar .album-picker-search { flex:1; min-width:0; display:block; }
.membership-picker .album-picker-new-button { width:auto; flex:0 0 auto; }
.membership-picker-toolbar .search-input { width:100%; max-width:none; min-width:0; height:44px; min-height:44px; border-radius:var(--radius-sm); background:var(--surface-input); }
.membership-picker-toolbar .search-input input { background:transparent; border:0; outline:0; box-shadow:none; padding:0; min-width:0; width:100%; height:100%; font-family:inherit; font-size:14px; }
.membership-picker-toolbar .button { min-height:44px; height:44px; padding:0 12px; white-space:nowrap; background:var(--surface-input); }
.membership-picker-toolbar svg { width:20px; height:20px; flex:none; }
.membership-picker .album-picker-result { min-height:72px; grid-template-columns:48px minmax(0,1fr) 20px; gap:12px; padding:12px 8px; }
.membership-picker .album-picker-cover { width:48px; height:48px; }
.membership-picker .album-picker-cover svg { width:24px; height:24px; }
/* One native selection checkbox style for album, file and note pickers. */
:is(
    .membership-picker .album-picker-result input[type="checkbox"],
    .resource-picker:is([data-resource-picker="files"], [data-resource-picker="notes"])
        .rp-record-select > input[type="checkbox"]
) {
    appearance: auto;
    flex: 0 0 18px;
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    min-height: 18px;
    max-height: 18px;
    margin: 0;
    padding: 0;
    accent-color: var(--brand-green-500);
    cursor: pointer;
}

/* Preserve the existing disabled behavior across the three pickers. */
:is(
    .membership-picker .album-picker-result input[type="checkbox"],
    .resource-picker:is([data-resource-picker="files"], [data-resource-picker="notes"])
        .rp-record-select > input[type="checkbox"]
):disabled {
    cursor: default;
}
.membership-picker .album-picker-copy { min-width:0; gap:6px; }
.membership-picker .album-picker-copy strong { font-size:14px; line-height:1.4; }
.membership-picker .album-picker-meta { font-size:12px; font-weight:400; }
.membership-picker .album-picker-create { width:min(100%,640px); max-width:100%; align-self:center; overflow:auto; min-height:0; padding:var(--space-4) 0; box-sizing:border-box; }
.membership-picker .album-picker-create-fields { width:100%; }
.membership-picker .album-picker-create-fields .field { min-width:0; }
.membership-picker .album-picker-create-fields textarea { min-height:120px; }
.membership-picker .modal-header h2:focus { outline:none; }
.membership-picker .album-picker-footer { gap:12px; }
@media(max-width:600px)
{
    #modalBackdrop>.membership-picker.modal,
    #modalBackdrop>.membership-picker.modal:has(.album-picker-create:not([hidden])) { width:100%; height:100dvh; max-height:100dvh; border-radius:0; }
    .membership-picker .album-picker-body { padding:12px; }
    .membership-picker-toolbar .button { padding:0 10px; }
    .membership-picker .album-picker-result { grid-template-columns:40px minmax(0,1fr) 20px; gap:10px; }
    .membership-picker .album-picker-cover { width:40px; height:40px; }
    .membership-picker .album-picker-footer { padding:12px; }
}

.resource-picker .modal-header
{
    flex:none;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px
}

.resource-picker .modal-header p
{
    margin:8px 0 0;
    color:var(--text-secondary);
    overflow-wrap:anywhere;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.resource-picker .modal-header>div
{
    flex:1;
    min-width:0;
}

.resource-picker[role=dialog]
{
    position:relative;
}

.resource-picker [hidden],.resource-picker-editor-modal [hidden]
{
    display:none!important;
}

.resource-picker [data-rp-heading]:focus
{
    outline:none;
}

.resource-picker .rp-search input:focus,.resource-picker .rp-search input:focus-visible
{
    outline:none!important;
    box-shadow:none!important;
}

.resource-picker button,.resource-picker input,.resource-picker select,.resource-picker-editor-modal input,.resource-picker-editor-modal textarea
{
    font-family:inherit;
    font-size:14px;
    letter-spacing:0;
}

.resource-picker .rp-toolbar>.icon-button,.resource-picker .rp-sort
{ height:44px; min-height:44px; box-sizing:border-box; border:1px solid var(--border-default); border-radius:var(--radius-sm); background:var(--surface-input); color:var(--text-secondary); }

.resource-picker .rp-toolbar input,.resource-picker .rp-toolbar select
{
    font-family:inherit;
    font-size:14px;
    font-weight:500;
    line-height:1.4;
    letter-spacing:0;
}

.resource-picker .rp-toolbar>.button { padding:0 12px; background:var(--surface-input); }
.resource-picker .rp-toolbar>.icon-button { width:44px; flex:0 0 44px; padding:0; }
.resource-picker .rp-toolbar>.icon-button:hover,.resource-picker .rp-sort:hover
{ background:var(--surface-card-hover); border-color:var(--border-strong); }
.resource-picker .rp-toolbar>.icon-button:focus-visible
{ outline:var(--control-focus-width) solid var(--control-focus-color); outline-offset:2px; }
.resource-picker .rp-sort:focus-within
{ border-color:var(--control-field-focus-color); outline:none; }
.resource-picker .rp-sort-trigger:focus-visible { outline:none; }
.resource-picker .rp-toolbar>.icon-button.is-active { color:var(--brand-green-400); border-color:var(--brand-green-400); }

.resource-picker .rp-path
{
    height:48px;
    min-height:48px;
    max-height:48px;
    margin:0 24px 16px;
    padding:0;
    border-bottom:1px solid var(--border);
    gap:8px;
}

.rp-path [aria-current=page]
{
    color:var(--text-primary);
    font-weight:600;
}

.rp-path>span[aria-hidden] svg
{
    width:14px;
    height:14px;
    display:block;
}

.rp-view-heading,.rp-country-heading
{
    font-size:14px;
    font-weight:700;
    color:var(--text-secondary);
    margin:16px 8px 8px;
}

.rp-selection-summary
{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
    min-width:0;
}

.rp-selected svg
{
    width:14px;
    height:14px;
}

[data-rp-changes]
{
    font-size:12px;
    color:var(--text-secondary);
}

.resource-picker .rp-record>.icon-button
{
    border-color:transparent;
    width:36px;
    height:36px;
    flex-basis:36px;
}

.resource-picker[data-resource-picker=files] .rp-scope>svg,.resource-picker[data-resource-picker=files] .rp-record-icon
{
    color:var(--gg-accent-sepia-gold-accent);
}

.resource-picker[data-resource-picker=files] .rp-scope>svg:first-child
{
    fill:currentColor;
    stroke:var(--surface-main);
}

.resource-picker[data-resource-picker=notes] .rp-record-icon
{
    color:var(--purple);
}

.resource-picker[data-resource-picker=sources] .rp-record-icon
{
    color:var(--gg-accent-evidence-slate-accent);
}

.resource-picker[data-resource-picker=places] .rp-record-icon
{
    color:var(--gg-accent-map-cyan-accent);
}


.rp-filter-panel
{
    position:absolute;
    z-index:5;
    width:320px;
    max-width:calc(100% - 24px);
    overflow:auto;
    padding:20px;
    background:var(--surface-card);
    border:1px solid var(--border-strong);
    border-radius:8px;
    box-shadow:0 10px 30px color-mix(in srgb, var(--gg-scrim) 30%, transparent);
}

.rp-filter-panel h3
{
    margin:0 0 16px;
    font-size:16px;
}

.rp-filter-panel .rp-filters
{
    padding:0;
    align-items:stretch;
    gap:16px;
}

.rp-filter-panel .rp-filters label
{
    min-width:0;
    width:100%;
}

.resource-picker[data-resource-picker=photos] .rp-filter-panel { width:min(680px, calc(100% - 48px)); }
.rp-photo-filters { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; min-width:0; }
.rp-photo-filters .rp-filter-checkbox { display:flex; align-items:center; gap:10px; cursor:pointer; }
.rp-photo-filters .rp-filter-checkbox input { width:18px; height:18px; flex:none; accent-color:var(--brand-green-500); }
.rp-photo-person-field { display:grid; gap:7px; min-width:0; }
.rp-photo-person-combobox { position:relative; min-width:0; }
.rp-photo-person-combobox input { width:100%; min-width:0; }
.rp-photo-person-options { max-height:210px; margin-top:4px; overflow:auto; border:1px solid var(--border-strong); border-radius:var(--radius-sm); background:var(--surface-card); }
.rp-photo-person-options [role=option] { padding:9px 12px; cursor:pointer; }
.rp-photo-person-options [role=option]:hover,.rp-photo-person-options [role=option][aria-selected=true] { background:var(--surface-card-hover); }
.rp-photo-person-options [role=option][hidden] { display:none; }
@media (max-width:600px) {
    .resource-picker[data-resource-picker=photos] .rp-filter-panel { width:calc(100% - 24px); }
}

.rp-filter-panel .rp-filters input:not([type=checkbox]),.rp-filter-panel select
{
    width:100%;
    min-width:0;
}

.rp-filter-actions
{
    display:flex;
    justify-content:space-between;
    gap:8px;
    margin-top:20px;
}

.rp-filter-error
{
    color:var(--red);
    font-size:13px;
}

.resource-picker-editor-modal [data-rp-note-form] .modal-body
{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:24px;
}

.resource-picker-editor-modal [data-rp-note-form] .field
{
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:none;
}

.resource-picker-editor-modal [data-rp-note-form] .field label { margin-bottom:0; }

.resource-picker-editor-modal [data-rp-note-rich]
{
    flex:1;
    min-height:200px;
    background:var(--surface-main);
    border:1px solid var(--border-default);
    border-top:0;
    border-radius:0 0 8px 8px;
}

.resource-picker-editor-modal [data-rp-note-rich] .ql-editor.ql-blank::before
{
    left:16px;
    right:16px;
    color:var(--text-placeholder);
    font-family:inherit;
    font-style:normal;
    font-size:14px;
    font-weight:400;
    letter-spacing:0;
    opacity:1;
}

.resource-picker-editor-modal [data-rp-note-rich] .ql-editor
{
    padding:16px;
    font-size:15px;
    line-height:1.6;
}

.resource-picker-editor-modal #rpNoteToolbar
{
    margin:0;
    border:1px solid var(--border-default);
    border-radius:8px 8px 0 0;
    background:var(--surface-card);
}
.resource-picker-editor-modal [data-rp-note-form] .rp-note-body-field { flex:1; min-height:0; gap:0; }
.resource-picker-editor-modal [data-rp-note-form] .rp-note-body-field>label { margin-bottom:12px; }
.resource-picker-editor-modal [data-rp-note-rich] .ql-editor:focus-visible {
    outline: none;
}
/* Match the standard focused input border. */
.resource-picker-editor-modal [data-rp-note-rich]:focus-within,
.resource-picker-editor-modal .rp-note-body-field:has(
    [data-rp-note-rich]:focus-within
) #rpNoteToolbar {
    border-color: var(--control-field-focus-color);
}

.resource-picker-editor-modal [data-rp-note-form] #rpNoteBody { flex:1; border:1px solid var(--border-default); border-radius:8px; }
.resource-picker-editor-modal [data-rp-note-form] #rpNoteBody::placeholder
{
    color:var(--text-placeholder);
    font-size:14px;
    font-weight:400;
    opacity:1;
}
.rp-record-title { display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; min-width:0; }
.rp-record-title strong { min-width:0; max-width:100%; }
.rp-uploaded-marker { color:var(--brand-green-400); font-size:11px; font-weight:600; flex:none; }
.rp-uploaded-heading { font-size:14px; margin:0 0 12px; }
.rp-uploaded-group { flex:none; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid var(--border-default); }
.rp-note-preview,.rp-source-preview { width:100%; max-width:72ch; margin:0; padding:12px 0 24px; }
.rp-note-preview>h3,.rp-source-preview h3 { margin:0 0 20px; font-size:18px; line-height:1.4; }
.rp-note-prose { font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.rp-note-prose p { margin:0 0 12px; }
.rp-note-prose h1,.rp-note-prose h2,.rp-note-prose h3 { margin:24px 0 8px; line-height:1.4; }
.rp-note-prose h1 { font-size:20px; }
.rp-note-prose h2 { font-size:18px; }
.rp-note-prose h3 { font-size:16px; }
.rp-note-prose ol,.rp-note-prose ul { display:block; margin:8px 0 16px; padding-left:24px; height:auto; min-height:0; }
.rp-note-prose li { display:list-item; margin:4px 0; padding:0; }
.rp-note-prose li[data-list=bullet] { list-style-type:disc; }
.rp-note-prose blockquote { margin:16px 0; padding-left:16px; border-left:2px solid var(--border-strong); }
.rp-source-preview header { display:flex; gap:12px; align-items:flex-start; margin-bottom:24px; }
.rp-source-preview header>span { color:var(--gg-accent-evidence-slate-accent); flex:none; }
.rp-source-preview header svg { width:24px; height:24px; }
.rp-source-preview header h3 { margin:0 0 6px; }
.rp-source-preview header p { color:var(--text-secondary); margin:0; font-size:13px; }
.rp-source-preview dl { display:grid; grid-template-columns:minmax(90px,120px) minmax(0,1fr); gap:16px; margin:0 0 24px; }
.rp-source-preview dt { color:var(--text-secondary); font-size:12px; font-weight:700; }
.rp-source-preview dd { margin:0; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.rp-source-preview section { border-top:1px solid var(--border-default); padding-top:20px; }
.rp-source-preview h4 { margin:0 0 8px; font-size:14px; }
.rp-source-preview section p { margin:0; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }

@media(max-width:600px)
{
    .rp-filter-panel
    {
        top:auto!important;
        right:0!important;
        bottom:0;
        width:100%;
        max-width:100%;
        max-height:75dvh!important;
        border-radius:8px 8px 0 0;
    }

    .resource-picker .modal-footer
    {
        align-items:flex-end;
    }

    .resource-picker .rp-footer-actions .button
    {
        padding:10px 12px;
        font-size:13px;
    }

    .resource-picker .rp-record>.icon-button
    {
        width:44px;
        height:44px;
        flex-basis:44px;
    }

    .rp-path button:not(:first-child)
    {
        max-width:70px;
    }
}

.resource-picker .icon-button,.resource-picker-editor-modal .icon-button
{
    width:42px;
    height:42px;
    flex:0 0 42px;
    padding:0;
    display:inline-grid;
    place-items:center;
    border:1px solid var(--border-default);
    border-radius:8px;
    background:transparent;
    color:var(--text-secondary);
    cursor:pointer
}

.resource-picker .icon-button svg,.resource-picker-editor-modal .icon-button svg
{
    width:20px;
    height:20px
}

.resource-picker .icon-button:hover,.resource-picker .icon-button.is-active
{
    background:var(--surface-card-hover);
    color:var(--text-primary)
}

.resource-picker .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
}

.resource-picker select,.resource-picker-editor-modal select
{ height:var(--control-height); min-width:0; border:1px solid var(--border-default); border-radius:var(--radius-sm); padding:0 42px 0 var(--space-3); appearance:none; background-color:var(--surface-input); background-image:var(--select-chevron); background-position:calc(100% - 16px) center; background-size:12px 7px; background-repeat:no-repeat; color:var(--text-secondary); font:inherit; font-size:14px; }
.resource-picker select:hover:not(:disabled),.resource-picker-editor-modal select:hover:not(:disabled)
{ border-color:var(--border-strong); }
.resource-picker select:focus,.resource-picker-editor-modal select:focus
{ border-color:var(--control-field-focus-color); outline:none; }

.resource-picker .rp-content:focus
{
    outline:none
}

.rp-toolbar
{
    display:flex;
    align-items:center;
    gap:8px;
    padding:20px 24px 12px;
    flex:none;
    min-width:0
}

.resource-picker[data-resource-picker=photos] .rp-toolbar,
.resource-picker[data-resource-picker=files] .rp-toolbar
{
    overflow-y:hidden;
    scrollbar-gutter:stable
}

.rp-toolbar .button
{
    white-space:nowrap;
    gap:8px;
    display:inline-flex;
    align-items:center
}

.rp-toolbar select
{
    width:100%;
    min-width:0;
    appearance:none;
    background:transparent;
    border:0;
    padding:0 34px 0 38px;
    height:44px;
    cursor:pointer
}

.rp-sort
{
    position:relative;
    width:160px;
    min-width:0;
    height:44px;
    flex-shrink:0;
}

.rp-sort>svg,.rp-sort-chevron
{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    pointer-events:none;
    color:var(--text-secondary);
}

.rp-sort>svg { left:12px; width:20px; height:20px; }
.rp-sort-chevron { right:12px; display:flex; }
.rp-sort-chevron svg { width:14px; height:14px; transform:rotate(90deg); transition:transform var(--ease); }
.rp-sort:has(.rp-sort-trigger[aria-expanded="true"]) .rp-sort-chevron svg { transform:rotate(-90deg); }
.resource-picker .rp-sort-trigger
{
    width:100%;
    height:100%;
    border:0;
    background:transparent;
    color:inherit;
    padding:0 34px 0 38px;
    font:inherit;
    font-size:14px;
    font-weight:500;
    text-align:left;
    cursor:pointer;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.rp-sort-menu { min-width:200px; max-width:calc(100vw - 24px); }
.rp-sort-menu button { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--text-primary); font-family:inherit; font-size:14px; font-weight:500; line-height:1.4; }
.rp-sort-menu button[aria-checked=true] { background:var(--surface-card-hover); color:var(--brand-green-400); }
.rp-sort-menu svg { display:block; width:18px; height:18px; }
.rp-path .rp-path-icon { flex:none; display:flex; }
.rp-path .rp-path-icon svg { width:20px; height:20px; }

.resource-picker .rp-toolbar .rp-search
{
    background:var(--surface-input);
}

.rp-search
{
    max-width:none;
    height:44px;
    min-height:44px;
    display:flex;
    align-items:center;
    flex:1;
    min-width:80px;
    padding:0 12px;
    gap:8px
}

.rp-search input
{
    width:100%;
    min-width:0;
    height:100%;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    padding:0
}

.rp-search svg,.rp-toolbar svg,.rp-path svg,.rp-record svg,.rp-scope svg
{
    width:20px;
    height:20px;
    flex:none
}

.rp-path
{
    padding:0 24px 12px;
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--text-secondary);
    font-size:13px;
    flex:none;
    min-height:30px
}

.rp-path button,.rp-selected
{
    background:none;
    border:0;
    color:var(--accent);
    padding:4px 0;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:6px
}

.rp-path
{
    overflow:hidden
}

.rp-path button,.rp-path>span:last-child
{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    min-width:24px;
    display:inline-flex;
    align-items:center;
    line-height:20px
}

.rp-path>span[aria-hidden]
{
    flex:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:20px
}

.rp-content
{
    overflow:auto;
    flex:1;
    min-height:0;
    padding:0 24px 20px;
    overscroll-behavior:contain;
    display:flex;
    flex-direction:column
}

.resource-picker[data-resource-picker=photos] .rp-content,
.resource-picker[data-resource-picker=files] .rp-content
{
    scrollbar-gutter:stable
}

.rp-results
{
    display:flex;
    flex-direction:column;
    gap:0
}

.rp-record
{
    display:flex;
    align-items:center;
    gap:8px;
    border-bottom:1px solid var(--border);
    padding:8px;
    border-radius:4px;
    min-width:0
}

.rp-record.is-selected
{
    background:var(--surface-selected-row)
}

.rp-record-select
{
    display:flex;
    align-items:center;
    gap:12px;
    flex:1;
    min-width:0;
    cursor:pointer;
    padding:4px 0
}

.rp-record-copy
{
    display:flex;
    flex-direction:column;
    gap:5px;
    flex:1;
    min-width:0
}

.rp-record-copy strong
{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px
}

.rp-description
{
    font-size:13px;
    color:var(--text-secondary);
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-height:1.45
}

.rp-record-copy small
{
    font-size:12px;
    color:var(--text-secondary);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}

.resource-picker[data-resource-picker=notes] .rp-record-copy { gap:5px; }
.resource-picker[data-resource-picker=notes] .rp-record-copy strong { font-weight:700; font-size:14px; }
.resource-picker[data-resource-picker=notes] .rp-description {
    display:block;
    white-space:nowrap;
    text-overflow:ellipsis;
    font-size:13px;
    line-height:1.5;
}
.resource-picker[data-resource-picker=notes] .rp-record-copy small { font-size:11px; opacity:.8; }

.rp-record-icon
{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    flex:none;
    color:var(--text-secondary)
}

.rp-photo-grid
{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px
}

.rp-photo-grid .rp-record
{
    position:relative;
    display:block;
    border:1px solid var(--border);
    padding:0;
    overflow:hidden;
    border-radius:8px
}

.rp-photo-grid .rp-record-select
{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:0
}

.rp-photo-grid button.rp-record-select { width:100%; border:0; background:transparent; color:inherit; text-align:left; font:inherit; }
.rp-photo-grid .rp-selection-mark { position:absolute; z-index:3; top:10px; left:10px; width:22px; height:22px; display:grid; place-items:center; border:1px solid var(--gg-primary); border-radius:4px; background:var(--gg-primary); color:var(--gg-on-primary); opacity:0; }
.rp-photo-grid .rp-record.is-selected .rp-selection-mark { opacity:1; }
.rp-photo-grid .rp-selection-mark svg { width:16px; height:16px; }

.rp-photo-grid .rp-thumbnail
{
    aspect-ratio:4/3;
    overflow:hidden;
    display:grid;
    place-items:center;
    background:transparent
}

.rp-thumbnail img,.rp-thumbnail .photo-thumb
{
    width:100%;
    height:100%;
    object-fit:contain!important
}

.rp-photo-grid .rp-record-copy
{
    padding:12px 46px 12px 12px;
    min-height:65px
}

.rp-photo-grid input[type=checkbox]
{
    position:absolute;
    z-index:3;
    left:10px;
    top:10px;
    accent-color:var(--accent);
    width:20px;
    height:20px
}

.rp-thumbnail>[data-photo-thumbnail]
{
    position:relative;
    width:100%;
    height:100%;
    overflow:hidden
}


.rp-photo-grid .icon-button
{
    position:absolute;
    z-index:3;
    right:6px;
    bottom:10px
}

.rp-scopes
{
    display:flex;
    flex-direction:column
}

.rp-scope
{
    display:flex;
    align-items:center;
    gap:12px;
    background:none;
    border:0;
    border-bottom:1px solid var(--border);
    padding:16px 8px;
    color:var(--text);
    text-align:left;
    cursor:pointer
}

.rp-scope span
{
    flex:1
}

.rp-scope:hover,.rp-scope.is-selected
{
    background:var(--accent-soft,color-mix(in srgb, var(--gg-primary) 10%, transparent))
}

.rp-empty
{
    flex:1;
    min-height:180px;
    background:var(--surface-2,var(--gg-sidebar));
    border:1px solid var(--border);
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
    gap:12px
}

.rp-empty h3
{
    font-size:16px;
    margin:0
}

.rp-empty p
{
    font-size:14px;
    color:var(--text-secondary);
    margin:0;
    max-width:440px
}

.resource-picker .modal-footer
{
    flex:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 24px
}

.rp-footer-actions
{
    display:flex;
    gap:12px
}

.rp-selected
{
    color:var(--text-secondary);
    font-size:14px
}

.rp-error
{
    margin:0 24px 12px;
    color:var(--danger,var(--gg-status-error-accent));
    font-size:14px
}

.rp-error[hidden]
{
    display:none
}

.rp-filters
{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    padding:12px 0
}

.rp-filters label
{
    display:flex;
    align-items:center;
    gap:12px;
    max-width:100%
}

.rp-filters label:has(select)
{
    flex-direction:column;
    align-items:stretch;
    min-width:240px
}

.rp-preview
{
    line-height:1.6;
    overflow-wrap:anywhere
}

.rp-preview img
{
    max-width:100%;
    object-fit:contain
}

.rp-load-more
{
    margin:20px auto 0;
    flex:none
}

.resource-picker :focus-visible
{
    outline:var(--control-focus-width) solid var(--control-focus-color);
    outline-offset:2px
}

.resource-picker-editor-modal>.modal-body
{
    overflow:auto;
    flex:1;
    min-height:0
}

.resource-picker-editor-modal>form
{
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0
}

.resource-picker-editor-modal>form>.modal-body
{
    overflow:auto;
    flex:1;
    min-height:0
}

.resource-picker-editor-modal.place-editor-modal .place-editor-body
{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:24px;
}
.resource-picker-editor-modal.place-editor-modal .place-editor-body>* { flex:none; min-width:0; }
.resource-picker-editor-modal.place-editor-modal .place-editor-place-field { align-content:start; gap:8px; }
.resource-picker-editor-modal.place-editor-modal .place-editor-support { font-size:13px; line-height:1.5; }
.resource-picker-editor-modal.place-editor-modal .place-map-location { align-content:start; gap:12px; }
.resource-picker-editor-modal.place-editor-modal .place-map-location-row { min-height:44px; gap:12px; }
.resource-picker-editor-modal.place-editor-modal .places-editor-disclosure
{
    display:block;
    padding:12px 16px;
    border-radius:8px;
    margin:0;
}
.resource-picker-editor-modal.place-editor-modal .places-editor-disclosure>summary { min-height:24px; font-size:14px; }
.resource-picker-editor-modal.place-editor-modal .places-editor-disclosure[open]>summary { margin-bottom:12px; }
.resource-picker-editor-modal.place-editor-modal .place-editor-field-error:empty { display:none; }

.rp-media-thumbnail
{
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    overflow:hidden;
    background:transparent;
    color:var(--text-tertiary);
}

.rp-media-thumbnail img
{
    display:block;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}

.rp-photo-grid .rp-thumbnail
{
    grid-template-rows:minmax(0,1fr);
    grid-template-columns:minmax(0,1fr);
}

.rp-thumbnail>.rp-media-thumbnail
{
    min-width:0;
    min-height:0;
    grid-template-rows:minmax(0,1fr);
    grid-template-columns:minmax(0,1fr);
}

.rp-photo-grid .rp-media-thumbnail img
{
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
}

.resource-picker button:disabled
{
    opacity:.45;
    cursor:default;
    transform:none;
}

.resource-picker .rp-footer-actions
{
    margin-left:auto;
}

.rp-filter-panel .rp-filter-checkbox
{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    min-height:44px;
    gap:10px;
    margin:0;
    cursor:pointer;
}

.rp-filter-panel .rp-filter-checkbox input[type=checkbox]
{
    appearance:auto;
    flex:0 0 18px;
    width:18px;
    min-width:18px;
    max-width:18px;
    height:18px;
    min-height:18px;
    max-height:18px;
    margin:0;
    padding:0;
    border:initial;
    border-radius:0;
    background:initial;
    accent-color:var(--brand-green-500);
    cursor:pointer;
}

.rp-filter-panel .rp-filters label:not(.rp-filter-checkbox)
{
    flex-direction:column;
    align-items:stretch;
    gap:8px;
}

.resource-picker-editor-modal [data-rp-note-form] .ql-toolbar .ql-stroke
{
    stroke:var(--text-secondary);
}

.resource-picker-editor-modal [data-rp-note-form] .ql-toolbar .ql-fill
{
    fill:var(--text-secondary);
}

.resource-picker-editor-modal [data-rp-note-form] .ql-toolbar .ql-picker
{
    color:var(--text-secondary);
}

.rp-media-thumbnail.is-placeholder svg
{
    width:40px;
    height:40px;
}

.rp-media-thumbnail.has-image>svg
{
    display:none;
}

.resource-picker[data-view=preview] .rp-content,.rp-preview,.rp-media-preview
{
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0;
}

.rp-media-preview-header
{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 0;
    flex:none;
}

.rp-media-preview-identity
{
    flex:1;
    min-width:0;
}

.rp-media-preview-identity h3
{
    margin:0;
    font-size:16px;
    overflow-wrap:anywhere;
}

.rp-media-preview-identity p
{
    margin:6px 0 0;
    font-size:13px;
    color:var(--text-secondary);
}

.rp-media-preview-tools
{
    display:flex;
    align-items:center;
    gap:6px;
    flex:none;
}

.rp-media-preview-tools .button
{
    height:42px;
    min-height:42px;
    padding:8px 14px;
}

.rp-media-preview-stage
{
    flex:1;
    min-height:160px;
    height:100%!important;
    max-height:none!important;
    background:transparent;
}

.resource-picker-editor-modal[data-rp-photo-upload]>.modal-body,.resource-picker-editor-modal.archive-document-import>.modal-body
{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:16px;
}

.resource-picker-editor-modal [data-rp-upload-dropzone],.resource-picker-editor-modal [data-document-drop]
{
    flex:none;
    min-height:144px;
}

.rp-upload-result
{
    padding:8px 0;
    font-size:14px;
    overflow-wrap:anywhere;
}

.rp-upload-result.error
{
    color:var(--red);
}

@media(max-width:600px)
{
    .rp-media-preview-header
    {
        gap:8px;
        flex-wrap:wrap;
    }

    .rp-media-preview-tools
    {
        margin-left:auto;
    }

    .resource-picker .rp-footer-actions { flex:none; }
    .resource-picker .rp-selection-summary { flex:1; overflow-wrap:anywhere; }
    .resource-picker .rp-footer-actions [data-rp-action=save] { max-width:145px; white-space:normal; }
    .resource-picker[data-view=results] .modal-footer { flex-wrap:wrap; }
    .resource-picker[data-view=results] .rp-selection-summary { flex-basis:100%; }
    .resource-picker .rp-selected { white-space:nowrap; }
}

.resource-picker-editor-modal .modal-header,.resource-picker-editor-modal .modal-footer
{
    flex:none
}

@media(max-width:900px)
{
    .rp-photo-grid
    {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }

    .rp-toolbar
    {
        flex-wrap:wrap
    }

    .rp-toolbar .rp-search
    {
        order:-1;
        flex-basis:100%
    }

    .rp-toolbar .rp-sort
    {
        flex:1
    }

    .rp-create span
    {
        max-width:160px;
        overflow:hidden;
        text-overflow:ellipsis
    }

}

@media(max-width:600px)
{
    .resource-picker.modal,.resource-picker-editor-modal.modal
    {
        width:100vw;
        height:100dvh;
        max-height:100dvh;
        border-radius:0
    }

    .rp-toolbar
    {
        padding:12px;
        gap:6px
    }

    .resource-picker[data-resource-picker=photos] .rp-toolbar
    {
        display:grid;
        grid-template-columns:auto 44px minmax(0,1fr)
    }

    .resource-picker[data-resource-picker=photos] .rp-toolbar .rp-search
    {
        grid-column:1 / -1;
        grid-row:1;
        width:100%
    }

    .resource-picker[data-resource-picker=photos] .rp-toolbar > .icon-button
    {
        grid-column:2;
        grid-row:2
    }

    .resource-picker[data-resource-picker=photos] .rp-toolbar .rp-sort,
    .resource-picker[data-resource-picker=photos] .rp-toolbar > [data-rp-sort]
    {
        grid-column:3;
        grid-row:2;
        width:100%
    }

    .resource-picker[data-resource-picker=photos] .rp-toolbar .rp-create
    {
        grid-column:1 / -1;
        grid-row:3;
        justify-content:center
    }

    .resource-picker .rp-path
    {
        margin:0 12px 12px;
        padding:0
    }

    .rp-content
    {
        padding:0 12px 12px
    }

    .resource-picker .modal-footer
    {
        padding:12px;
        gap:8px
    }

    .rp-footer-actions
    {
        gap:8px
    }

    .rp-photo-grid
    {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px
    }

    .rp-record .icon-button
    {
        min-width:44px;
        min-height:44px
    }

    .rp-toolbar .button
    {
        padding-left:10px;
        padding-right:10px
    }

    .rp-toolbar .rp-sort
    {
        width:110px
    }

    .rp-selected
    {
        font-size:12px
    }

    .rp-error
    {
        margin:0 12px 12px
    }

    .rp-photo-grid .rp-record-copy
    {
        padding-right:38px
    }

    .rp-record-copy strong
    {
        white-space:normal;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical
    }

}

.source-create-short {
    display: none;
}

#modalBackdrop .target-source-picker-modal .notes-related-toolbar .app-search-field {
    width: 100%;
}

@media (max-width: 900px) {
    .person-mobile-link-picker .notes-related-modal-body {
        min-height: 0;
        padding: var(--space-4);
    }

    .person-mobile-link-picker .notes-related-toolbar {
        grid-template-columns: minmax(0, 1fr);
    }

    .person-mobile-link-picker .notes-related-toolbar .app-search-field,
    .person-mobile-link-picker .notes-related-toolbar .app-search-field input {
        min-width: 0;
        width: 100%;
    }

    .person-mobile-link-picker .note-link-picker-toolbar-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .person-mobile-link-picker .notes-related-selected-panel {
        min-height: 0;
        max-height: min(25%, 144px);
        overflow-y: auto;
    }

    .person-mobile-link-picker :is(.notes-related-selected-list, .source-picker-selected-list),
    .person-mobile-link-picker :is(.notes-related-results-panel, .notes-related-results) {
        min-width: 0;
        min-height: 0;
    }

    .person-mobile-link-picker .notes-related-results {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .person-mobile-link-picker :is(.notes-related-choice, .source-picker-choice) {
        min-width: 0;
        grid-template-columns: 42px minmax(0, 1fr) 18px;
    }

    .person-mobile-link-picker :is(.notes-related-choice, .source-picker-choice) > input {
        grid-column: 3;
        grid-row: 1;
    }

    .person-mobile-link-picker :is(.notes-related-choice-status, .source-picker-choice-status) {
        grid-column: 2 / -1;
        grid-row: 2;
        justify-self: start;
    }

    .person-mobile-link-picker .notes-related-footer {
        flex-wrap: wrap;
    }

    #modalBackdrop .target-source-picker-modal .notes-related-toolbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }

    #modalBackdrop .archive-link-picker-modal .archive-link-picker-toolbar {
        flex-direction: row;
        align-items: center;
        gap: 8px;
    }

    #modalBackdrop :is(.target-source-picker-modal, .archive-link-picker-modal) :is(.notes-related-toolbar, .archive-link-picker-toolbar) .app-search-field {
        min-width: 0;
        width: 100%;
    }

    #modalBackdrop :is(.target-source-picker-modal, .archive-link-picker-modal) :is(.notes-related-toolbar, .archive-link-picker-toolbar) input[type="search"] {
        min-width: 0;
        width: 100%;
    }

    #modalBackdrop :is(.target-source-picker-modal, .archive-link-picker-modal) :is(.notes-related-toolbar, .archive-link-picker-toolbar) > .button {
        flex: 0 0 auto;
        width: auto;
        min-height: 44px;
        padding-inline: 10px;
        white-space: nowrap;
    }
}

@media (max-width: 540px) and (max-height: 600px) {
    .person-mobile-link-picker :is(.notes-related-modal-body, .notes-related-footer) {
        padding: var(--space-3);
    }

    .person-mobile-link-picker .notes-related-selected-panel {
        max-height: 72px;
    }
}

@media (max-width: 540px) {
    #modalBackdrop :is(.target-source-picker-modal, .archive-link-picker-modal) .source-create-full {
        display: none;
    }

    #modalBackdrop :is(.target-source-picker-modal, .archive-link-picker-modal) .source-create-short {
        display: inline;
    }
}


/* Media uploads: review a queue before adding it to the project. */
.rp-upload-staging:not(.has-items) .upload-dropzone {
    min-height: clamp(240px, 40vh, 340px);
}
.rp-upload-staging.has-items > .modal-body {
    justify-content: flex-start;
}
.rp-upload-staging.has-items .upload-dropzone {
    min-height: 132px;
}
.rp-upload-tiles[hidden],
.rp-upload-errors[hidden] {
    display: none;
}
.rp-upload-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr));
    gap: 12px;
    min-width: 0;
    margin-top: var(--space-4);
}
.rp-upload-tile {
    position: relative;
    display: grid;
    grid-template-rows: 104px auto auto;
    align-content: start;
    gap: 6px;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    background: var(--surface-card);
}
.rp-upload-tile-preview {
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 6px;
    background: var(--surface-main);
    color: var(--text-secondary);
}
.rp-upload-tile-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.rp-upload-tile-preview svg { width: 30px; height: 30px; }
.rp-upload-tile strong,
.rp-upload-tile small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rp-upload-tile strong { font-size: 13px; }
.rp-upload-tile small { color: var(--text-secondary); font-size: 12px; }
.rp-upload-remove {
    position: absolute;
    top: 14px;
    right: 14px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--border-default);
    border-radius: 6px;
    background: var(--surface-card);
    color: var(--text-primary);
    cursor: pointer;
}
.rp-upload-remove svg { width: 16px; height: 16px; }
.rp-upload-remove:hover { background: var(--surface-card-hover); }
.rp-upload-remove:focus-visible { outline: 2px solid var(--brand-green-300); outline-offset: 2px; }
.rp-upload-errors { color: var(--red); font-size: 13px; }
.rp-upload-errors p { margin: 0 0 6px; overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .rp-upload-staging[data-rp-photo-upload] .modal-footer { flex-wrap: wrap; }
}
[data-albums-photo-upload].rp-upload-staging > .modal-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
[data-albums-photo-upload].rp-upload-staging.has-items > .modal-body {
    justify-content: flex-start;
}
[data-albums-photo-upload].rp-upload-staging .person-photos-adder-upload-panel {
    width: 100%;
}
@media (max-width: 540px) {
    .rp-upload-staging .rp-upload-tiles { grid-template-columns: 1fr; }
}

/* Geneograph's single-place chooser shares the Manage places dialog shell. */
.resource-picker.geneo-place-modal.modal {
    width: min(980px, calc(100vw - 48px));
    height: min(800px, calc(100dvh - 48px));
    max-height: calc(100dvh - 48px);
}
.resource-picker.geneo-place-modal .geneo-place-picker-form {
    flex: 1;
    height: 100%;
    max-height: none;
}
.resource-picker.geneo-place-modal .geneo-place-picker-toolbar .rp-search {
    flex: 1;
    min-width: 0;
}
.resource-picker.geneo-place-modal .rp-path {
    margin-bottom: 16px;
}
.resource-picker.geneo-place-modal .geneo-place-picker-body {
    display: block;
    flex: 1;
    min-height: 0;
    padding: 0 24px 20px;
    overflow-y: auto;
}
.resource-picker.geneo-place-modal .geneo-place-picker-options {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    scrollbar-gutter: auto;
}
.resource-picker.geneo-place-modal .geneo-place-picker-results-heading {
    min-height: 0;
    padding: 16px 8px 8px;
}
.resource-picker.geneo-place-modal .geneo-place-picker-results-heading h3 {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
}
.resource-picker.geneo-place-modal .geneo-place-picker-option,
.resource-picker.geneo-place-modal .geneo-place-board-choice {
    display: flex;
    align-items: center;
    min-height: 64px;
    padding: 8px;
    gap: 12px;
    border-bottom: 1px solid var(--border-default);
    border-radius: 4px;
}
.resource-picker.geneo-place-modal .geneo-place-picker-option-copy,
.resource-picker.geneo-place-modal .geneo-place-board-choice-copy {
    flex: 1;
    min-width: 0;
    gap: 5px;
}
.resource-picker.geneo-place-modal .geneo-place-picker-option-copy strong,
.resource-picker.geneo-place-modal .geneo-place-board-choice-name {
    font-size: 14px;
    font-weight: 700;
}
.resource-picker.geneo-place-modal .geneo-place-picker-option-copy span,
.resource-picker.geneo-place-modal .geneo-place-board-choice-meta {
    color: var(--text-secondary);
    font-size: 13px;
}
.resource-picker.geneo-place-modal .geneo-place-board-choice-host {
    margin-top: 12px;
    border-top: 0;
}
.resource-picker.geneo-place-modal .geneo-place-picker-check {
    flex: none;
}
.resource-picker.geneo-place-modal .geneo-place-picker-error:not(:empty) {
    display: block;
    margin-top: 12px;
}
.resource-picker.geneo-place-modal .geneo-place-selection-summary {
    min-width: 0;
    overflow: hidden;
    color: var(--text-secondary);
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 600px) {
    .resource-picker.geneo-place-modal.modal {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
    }
    .resource-picker.geneo-place-modal .geneo-place-picker-toolbar .rp-search {
        flex-basis: 100%;
    }
    .resource-picker.geneo-place-modal .geneo-place-picker-body {
        padding: 0 12px 12px;
    }
    .resource-picker.geneo-place-modal .modal-footer {
        flex-wrap: wrap;
    }
    .resource-picker.geneo-place-modal .geneo-place-selection-summary {
        flex-basis: 100%;
    }
    .resource-picker.geneo-place-modal .rp-footer-actions {
        margin-left: auto;
    }
}
