.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 24px;margin-bottom:20px}
.photo-toolbar h2{margin:0 0 6px}.photo-toolbar p,.photo-toolbar small{color:var(--ov-secondary,var(--ink-soft));margin:4px 0}.photo-upload-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.photo-upload-controls input{width:100%;max-width:290px;font:inherit;font-size:12px}.photo-upload-controls input::file-selector-button{border:1px solid var(--ov-line,var(--line));border-radius:8px;background:var(--ov-surface,var(--white));color:var(--ov-text,var(--ink));font:inherit;padding:10px;cursor:pointer}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px;min-width:0}.photo-card{border:1px solid var(--ov-line,var(--line));border-radius:14px;overflow:hidden;background:var(--ov-surface,var(--white));min-width:0;display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.photo-card>strong,.photo-card>small,.photo-card>a{margin:0 16px;overflow-wrap:anywhere}.photo-card>strong{font-size:14px;line-height:1.45}.photo-card>small{font-size:12px;color:var(--ov-secondary,var(--ink-soft))}.photo-card>a{align-self:flex-start;font-size:13px}.photo-open{aspect-ratio:4/3;display:grid;place-items:center;padding:0;width:100%;border:0;background:var(--paper);cursor:pointer;overflow:hidden}.photo-open img{display:block;width:100%;height:100%;object-fit:cover}.photo-no-thumbnail::after{content:attr(data-placeholder);font:inherit;font-size:12px;color:var(--ov-secondary,var(--ink-soft))}.photo-open:focus-visible{outline:3px solid #234836;outline-offset:-3px}.photo-status{padding:20px 0;color:var(--ov-secondary,var(--ink-soft));font-size:14px}.photo-queue{border:1px solid var(--ov-line,var(--line));border-radius:12px;padding:8px 16px;margin:0 0 20px;background:var(--ov-surface,var(--white))}.photo-queue-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:14px 0;border-bottom:1px solid var(--ov-line,var(--line))}.photo-queue-row:last-child{border-bottom:0}.photo-queue-row strong,.photo-queue-row span{font-size:12px;overflow-wrap:anywhere}.photo-queue-row span{grid-column:1}.photo-queue-row progress{grid-column:1;width:100%;height:6px;accent-color:#234836}.photo-queue-row small{grid-column:1;color:var(--ov-secondary,var(--ink-soft));font-size:11px}.photo-queue-row button{grid-column:2;grid-row:1/5;align-self:center}.photo-more{margin:24px auto;display:block}.photo-preview{width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--ov-line,var(--line));border-radius:16px;padding:24px;background:var(--ov-surface,var(--white));color:var(--ov-text,var(--ink))}.photo-preview::backdrop{background:rgba(0,0,0,.55)}.photo-preview header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.photo-preview h2{font-size:16px;overflow-wrap:anywhere}.photo-preview img{display:block;max-width:100%;max-height:65dvh;object-fit:contain;margin:auto}.photo-preview p{font-size:13px;color:var(--ov-secondary,var(--ink-soft))}
[data-theme="dark"] .photo-card,[data-theme="dark"] .photo-queue,[data-theme="dark"] .photo-preview{background:#202626;border-color:#35403b;color:#edf0ec}[data-theme="dark"] .photo-open{background:#1b211e}[data-theme="dark"] .photo-upload-controls input::file-selector-button{background:#26372e;color:#edf0ec;border-color:#405448}
@media(max-width:720px){.photo-toolbar{padding:18px;gap:14px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-card>strong,.photo-card>small,.photo-card>a{margin-left:12px;margin-right:12px}.photo-card>strong{font-size:12px}.photo-card>small{font-size:11px}.photo-preview{padding:16px}.photo-upload-controls{width:100%}.photo-upload-controls input{max-width:100%}.photo-upload-controls small{width:100%;font-size:11px}}
@media print{#page-photos,.photo-preview{display:none!important}}
.photo-storage{font-size:12px;line-height:1.6;color:var(--ov-secondary,var(--ink-soft));padding:12px 16px;border:1px solid var(--ov-line,var(--line));border-radius:10px;background:var(--ov-surface,var(--white));overflow-wrap:anywhere;margin:0 0 18px}.photo-space-warning{border-color:#b18a3f;color:var(--ov-warning-fg,#79591c)}#photo-upload{min-width:0;max-width:100%;display:flex;flex-direction:column;gap:6px}

@media(max-width:720px){.mobile-results-nav:has(#photos-mobile-nav:not([hidden])){grid-template-columns:repeat(4,minmax(0,1fr));}}
.library-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:18px 0;min-width:0}.library-breadcrumbs button{font:inherit;font-size:13px;max-width:100%;overflow-wrap:anywhere;text-align:left}.library-breadcrumbs button+button::before{content:'/';display:inline-block;margin-right:8px;color:var(--ov-secondary,var(--ink-soft))}.library-breadcrumbs button:disabled{opacity:1;color:var(--ov-text,var(--ink));cursor:default}
.library-group-label{font-size:12px;font-weight:600;color:var(--ov-secondary,var(--ink-soft));margin:24px 0 12px}.library-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.library-folder{display:flex;align-items:center;gap:12px;min-width:0;padding:18px;text-align:left;font:inherit;border:1px solid var(--ov-line,var(--line));border-radius:12px;background:var(--ov-surface,var(--white));color:var(--ov-text,var(--ink));cursor:pointer}.library-folder strong{font-size:14px;font-weight:550;overflow-wrap:anywhere}.library-folder:hover{border-color:#6e8979}.library-folder:focus-visible{outline:2px solid #6e8979;outline-offset:3px}.library-folder-icon{position:relative;display:block;flex-shrink:0;width:24px;height:18px;border:1.5px solid currentColor;border-radius:3px;color:#64816d}.library-folder-icon::before{position:absolute;content:'';top:-6px;left:0;width:10px;height:5px;border:1.5px solid currentColor;border-bottom:0;border-radius:3px 3px 0 0}
.library-settings{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;color:var(--ov-secondary,var(--ink-soft));margin:12px 0 22px}.library-settings input{margin:3px 0 0;accent-color:#234836;flex-shrink:0}.library-folder-dialog{padding:24px;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.library-folder-dialog h2{font-size:20px;margin:0 0 24px}.library-folder-dialog p[role=alert]{font-size:13px;color:#ae4848;overflow-wrap:anywhere}.photo-preview img[hidden],.photo-open img[hidden]{display:none}.photo-no-thumbnail::after{font-size:16px;font-weight:550;letter-spacing:.04em}
.library-upload-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.library-upload-actions>button{white-space:nowrap}.library-upload-actions input[hidden]{display:none}.library-upload-destination{font-size:12px;font-weight:600;color:var(--ov-text,var(--ink));overflow-wrap:anywhere}.library-upload-dialog>form>p{line-height:1.6;overflow-wrap:anywhere}.library-upload-note,#library-upload-summary{font-size:12px;color:var(--ov-secondary,var(--ink-soft))}#library-upload-progress{font-size:12px;color:var(--ov-text,var(--ink))}#photo-folder-support{max-width:42ch;line-height:1.5;color:var(--ov-secondary,var(--ink-soft))}
.photo-queue-group{padding:12px 0;border-top:1px solid var(--ov-line,var(--line))}.photo-queue-group summary{font-size:12px;font-weight:600;cursor:pointer;overflow-wrap:anywhere;color:var(--ov-text,var(--ink))}.photo-queue-group summary:focus-visible{outline:2px solid #6e8979;outline-offset:4px;border-radius:3px}.photo-queue-active:empty{display:none}.photo-queue-group:first-child{border-top:0}
@media(max-width:720px){.library-folders{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.library-folder{padding:16px 12px;gap:10px}.library-folder strong{font-size:12px}.library-folder-dialog{padding:20px}.photo-upload-controls>button{flex:1;justify-content:center}.library-settings{font-size:11px}}

.photo-card{position:relative}.photo-card-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 16px;min-width:0}.photo-card-actions a,.photo-card-actions button{font:inherit;font-size:12px}.library-item-select{position:absolute;top:10px;left:10px;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--ov-line,var(--line));border-radius:9px;background:var(--ov-surface,var(--white));cursor:pointer}.library-item-select input,.library-selection input{width:18px;height:18px;accent-color:#234836;margin:0;cursor:pointer}.library-item-select:has(input:focus-visible){outline:2px solid #64816d;outline-offset:3px}.photo-card:has(.library-item-select input:checked),.library-folder-card:has(.library-item-select input:checked){outline:2px solid #64816d;outline-offset:2px}.library-folder-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--ov-line,var(--line));border-radius:12px;background:var(--ov-surface,var(--white));min-width:0;overflow:hidden}.library-folder-card>.library-folder{flex:1;width:100%;border:0;border-radius:0;min-height:60px}.library-folder-card.has-controls>.library-folder{padding-left:54px}.library-folder-card.has-controls .library-folder-icon{display:none}.library-folder-delete{align-self:flex-end;margin:0 14px 12px;font-size:12px}.library-selection,.library-deletion-progress{padding:16px 18px;border:1px solid var(--ov-line,var(--line));border-radius:12px;background:var(--ov-surface,var(--white));margin:0 0 20px;min-width:0}.library-selection{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px}.library-selection>label{display:flex;align-items:center;gap:8px;cursor:pointer}.library-selection>span{color:var(--ov-secondary,var(--ink-soft))}.library-selection-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-left:auto}.library-selection-actions button{font-size:12px}.library-deletion-progress strong{font-size:14px}.library-deletion-progress progress{display:block;width:100%;height:7px;margin:14px 0;accent-color:#234836}.library-deletion-progress p{font-size:12px;color:var(--ov-secondary,var(--ink-soft));line-height:1.6;overflow-wrap:anywhere}.library-deletion-progress .library-selection-actions{margin-top:14px}.library-danger{color:var(--ov-danger-fg,#9b3434)}.library-danger-solid{background:#9b3434!important;color:#fff!important;border-color:#9b3434!important}.library-delete-dialog ul{padding-left:18px;font-size:13px;line-height:1.6;overflow-wrap:anywhere;max-height:180px;overflow:auto}.library-delete-dialog p{line-height:1.6;overflow-wrap:anywhere}.library-delete-dialog .dialog-actions{flex-wrap:wrap}.library-selection[hidden],.library-deletion-progress[hidden]{display:none!important}[data-theme="dark"] .library-danger{color:#edaaaa}[data-theme="dark"] .library-folder-card,[data-theme="dark"] .library-selection,[data-theme="dark"] .library-deletion-progress{background:#202626;border-color:#35403b;color:#edf0ec}@media(max-width:720px){.library-selection{gap:12px;padding:14px}.library-selection-actions{width:100%;margin-left:0}.library-selection-actions button{min-height:40px}.photo-card-actions{margin:0 12px;gap:8px}.photo-card-actions button{min-height:36px}.library-folder-delete{min-height:32px}.library-folder-card.has-controls>.library-folder{padding-left:52px}.library-delete-dialog .dialog-actions>button{flex:1;min-height:44px}}

@media(max-width:720px){.library-item-select{width:44px;height:44px;top:6px;left:6px}.library-folder-card.has-controls>.library-folder{padding-left:60px}}
