.photo-tag-pill{background:#000000b3;color:#fff;border-radius:999px;padding:2px 6px;font-size:11px;display:inline-flex;align-items:center;gap:4px}.photo-tag-remove{border:none;background:transparent;color:#fff;font-size:11px;line-height:1;cursor:pointer;padding:0 2px}.photo-tag-popup{min-width:160px}.photo-tag-suggestions{max-height:180px;overflow-y:auto}.time-strip-hotzone{position:fixed;top:64px;right:0;bottom:64px;width:60px;z-index:2100;pointer-events:auto}.time-strip{position:absolute;top:0;right:0;bottom:0;width:120px;padding:12px 10px 12px 0;border-radius:24px 0 0 24px;background:linear-gradient(to bottom,#000000e6,#000000b3);color:#fff;display:flex;align-items:center;justify-content:center;transform:translate(100%);opacity:0;pointer-events:none;transition:transform .18s ease-out,opacity .18s ease-out}.time-strip--visible{transform:translate(0);opacity:1;pointer-events:auto}.ts-track{position:relative;width:18px;height:100%;margin:0 auto;border-radius:999px;background:#ffffff0f;cursor:pointer;pointer-events:auto}.ts-track-fill{position:absolute;top:4px;bottom:4px;left:4px;right:4px;border-radius:999px;background:linear-gradient(to bottom,#5c8dff,#3553cc);opacity:.9}.ts-indicator{position:absolute;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:999px;border:3px solid #fff;background:#3b82f6;box-shadow:0 0 10px #000000b3;transition:top .08s linear}.ts-year-tick{position:absolute;right:-45px;transform:translateY(-50%);font-size:12px;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.7);cursor:pointer;white-space:nowrap}.ts-year-tick span{display:inline-block;padding:2px 8px;border-radius:999px;background:#000c}.ts-tooltip{position:absolute;left:50%;transform:translate(-50%,-50%);padding:3px 10px;border-radius:999px;background:#000;color:#fff;font-size:12px;white-space:nowrap;box-shadow:0 0 8px #0009;pointer-events:none;z-index:5}.ts-years,.ts-range-label{display:none}.toast-container{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:5000}.toast{padding:10px 16px;border-radius:8px;color:#fff;font-size:14px;box-shadow:0 4px 10px #0000004d;opacity:0;transform:translateY(20px);animation:toast-in .25s forwards,toast-out .25s 2.8s forwards}.toast-info{background:#0d6efd}.toast-success{background:#28a745}.toast-error{background:#dc3545}.toast-warning{background:#ffc107;color:#000}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(20px)}}body{background-color:var(--bg-body);color:var(--text-main);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.card.bg-dark{background-color:var(--card-bg-dark, var(--card-bg));color:var(--card-text-dark, var(--text-main))}.table.table-dark{--bs-table-bg: var(--table-bg, #ffffff);--bs-table-color: var(--table-text, var(--text-main));--bs-table-striped-bg: var(--table-row-alt-bg, #f8f9fa);--bs-table-striped-color: var(--table-text, var(--text-main));--bs-table-border-color: var(--border-subtle, #dee2e6);color:var(--table-text, var(--text-main))}.table.table-dark>:not(caption)>*>*{color:var(--table-text, var(--text-main))}.table-dark tbody tr:nth-of-type(odd)>*{--bs-table-bg-state: var(--table-row-alt-bg, #f8f9fa)}.btn-outline-light{color:var(--btn-outline-light-color, #f8f9fa);border-color:var(--btn-outline-light-border, #f8f9fa)}.btn-outline-light:hover{background-color:var(--btn-outline-light-hover-bg, rgba(255, 255, 255, .1))}.masonry-grid{column-count:4;column-gap:.75rem}@media (max-width: 1400px){.masonry-grid{column-count:3}}@media (max-width: 992px){.masonry-grid{column-count:2}}@media (max-width: 768px){.masonry-grid{column-count:2}}@media (max-width: 576px){.masonry-grid{column-count:1}}.masonry-item{break-inside:avoid;margin-bottom:.75rem}.media-card{position:relative;overflow:hidden;border-radius:var(--media-radius, 12px);background:var(--media-bg)}.media-card.is-selected,.album-card.is-selected{outline:2px solid var(--accent, #0d6efd);outline-offset:-2px}.media-select-toggle{position:absolute;top:8px;left:8px;width:30px;height:30px;border:0;border-radius:999px;background:#00000073;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:12;opacity:0;transition:opacity .15s ease-out,transform .15s ease-out}.media-card:hover .media-select-toggle,.album-card:hover .media-select-toggle,.media-card.is-selected .media-select-toggle,.album-card.is-selected .media-select-toggle{opacity:1}.media-select-toggle:hover{transform:scale(1.05)}.media-card img{display:block;width:100%}.media-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.lazy-wrapper{background:var(--media-bg);position:relative;overflow:hidden;border-radius:var(--media-radius, 12px);display:block;width:100%}.lazy-img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .2s ease-out}.lazy-img.is-loaded{opacity:1}.images-view{display:flex}.images-view-main{flex:1;padding-right:110px}.day-group{margin-bottom:32px}.day-header{font-weight:600;margin-bottom:8px}.albums-layout{display:flex}.albums-main{flex:1;padding-right:96px}.albums-year-group{margin-bottom:32px}.albums-year-header{font-weight:700;font-size:16px;margin:8px 4px 12px}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.album-card{background:var(--card-bg);border-radius:var(--card-radius, 18px);padding:8px 8px 10px;box-shadow:var(--card-shadow-soft);cursor:pointer;transition:transform .12s ease-out,box-shadow .12s ease-out;display:flex;flex-direction:column}.album-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.album-cover-wrapper{position:relative;border-radius:14px;overflow:hidden;background:var(--album-cover-bg)}.album-cover-img{width:100%;height:100%;object-fit:cover;aspect-ratio:4 / 3;display:block}.album-cover-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4 / 3;color:var(--text-muted);font-size:13px}.album-cover-actions{position:absolute;right:8px;bottom:8px;display:flex;gap:6px}.album-meta{padding:8px 4px 0}.album-title{font-size:15px;font-weight:600;margin-bottom:2px}.album-subline{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:4px}.album-subline .dot-separator{font-size:14px;line-height:1}.albums-timeline{position:fixed;top:80px;right:16px;width:64px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;opacity:.9;background:var(--timeline-bg)}.albums-timeline-year-btn{border:none;background:#ffffff0d;color:var(--timeline-text);padding:3px 8px;border-radius:999px;cursor:pointer;font-size:11px;min-width:40px;text-align:center;transition:background .12s ease-out,color .12s ease-out,transform .12s ease-out}.albums-timeline-year-btn.active{background:var(--timeline-active-bg);color:var(--timeline-active-text);transform:translate(-2px)}.albums-timeline-year-btn:hover{background:#ffffff26}.theme-dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(255,255,255,.3);flex-shrink:0}.dropdown-item.active .theme-dot{border:2px solid var(--accent, #0d6efd)}html.theme-fade{transition:background-color .4s ease,color .4s ease,filter .4s ease}#theme-fade-overlay{backdrop-filter:blur(0px) brightness(1);-webkit-backdrop-filter:blur(0px) brightness(1);opacity:0;transition:backdrop-filter .4s ease,-webkit-backdrop-filter .4s ease,opacity .4s ease;pointer-events:none;z-index:9999}body.theme-switching{transition:filter .3s ease;filter:blur(2px) brightness(1.05)}.fade-theme-enter{opacity:0;transition:opacity .4s ease}.fade-theme-enter-active{opacity:1}.media-overlay{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;padding:4px 8px;background:linear-gradient(to top,#000000a6,#0000);opacity:0;transition:opacity .15s ease-in-out;font-size:.8rem;color:#fff}.media-card:hover .media-overlay{opacity:1}.media-actions-vertical{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:6px;opacity:0;transition:opacity .15s ease-in-out}.media-card:hover .media-actions-vertical,.album-card:hover .media-actions-vertical{opacity:1}.media-actions-vertical i{padding:8px 10px;border-radius:8px;font-size:18px;background:#0009;color:#fff;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.media-actions-vertical i:hover{background:#000000d9}.images-grid{column-count:5;column-gap:.75rem;display:block}@media (max-width: 1400px){.images-grid{column-count:4}}@media (max-width: 992px){.images-grid{column-count:3}}@media (max-width: 768px){.images-grid{column-count:2}}.images-grid-item{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin-bottom:.75rem;position:relative;border-radius:12px;overflow:hidden;background:var(--color-bg-tile, #111);box-shadow:0 1px 3px #00000040;transition:transform .15s ease-out,box-shadow .15s ease-out}.images-grid-item:hover{box-shadow:0 3px 6px #0006;transform:translateY(-2px)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:5000;display:flex;flex-direction:column}.lightbox-header{position:absolute;top:8px;left:8px;right:8px;height:44px;display:flex;align-items:center;gap:8px;z-index:5002;pointer-events:auto}.lightbox-header .spacer{flex:1}.btn-icon{background:#ffffff1a;border:0;color:#fff;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;cursor:pointer}.btn-icon:hover{background:#fff3}.lightbox-stage{flex:1;display:grid;place-items:center;padding:64px 24px 24px;z-index:5001;pointer-events:none}.lightbox-media{max-width:95vw;max-height:88vh;pointer-events:auto}.lb-image{max-width:95vw;max-height:88vh;object-fit:contain;display:block}.lb-video-wrap{position:relative;max-width:95vw;max-height:88vh}.video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0009;color:#fff;z-index:2;font-weight:600;letter-spacing:.3px}.lb-video{width:100%;height:100%;object-fit:contain;background:#000}.lb-video-wrap.is-playing .lb-video{background:#000}.table .btn-outline-success{border-color:#2ecc71;color:#2ecc71}.table .btn-outline-success:hover{background:#2ecc71;color:#000}@media (max-width: 768px){.albums-main{padding-right:0}.albums-timeline{display:none}.images-view-main{padding-right:0}.time-strip{display:none}.albums-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.masonry-grid{column-count:initial;column-gap:0;display:grid;grid-template-columns:repeat(2,1fr);grid-auto-flow:dense;gap:4px}.masonry-grid .images-grid-item{break-inside:auto;margin-bottom:0;grid-column:span 1}.masonry-grid .images-grid-item.is-landscape{grid-column:1 / -1}}.pc-header-inner{flex-wrap:wrap}.pc-main-nav{display:flex;gap:8px;align-items:center}.pc-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:10px;border:none;cursor:pointer;background:transparent;color:var(--text-main);font-size:14px;white-space:nowrap;transition:background .15s ease,color .15s ease,transform .1s ease}.pc-nav-btn i{font-size:14px}.pc-nav-btn.active{background:var(--accent, #0d6efd);color:#fff}.pc-nav-btn:hover{background:#ffffff14}@media (max-width: 768px){.pc-header-inner{flex-direction:column;align-items:stretch;gap:6px}.pc-header-brand{align-self:flex-start}.pc-main-nav{width:100%;justify-content:space-between}.pc-nav-btn{flex:1;justify-content:center;padding:4px 6px;font-size:12px;border-radius:8px}.pc-nav-btn i{font-size:16px}.pc-nav-btn span{white-space:nowrap}.pc-header-right{align-self:flex-end}}.stats-section h2{font-size:18px}.stats-card{min-height:200px}.stats-bars{display:flex;align-items:flex-end;gap:4px;width:100%;height:140px}.stats-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center}.stats-bar{width:100%;border-radius:4px 4px 0 0;background:#0d6efd99}.stats-bar-label{margin-top:2px;font-size:9px;color:var(--text-muted, #aaa);writing-mode:vertical-rl;text-orientation:mixed;text-align:center;white-space:nowrap}@media (max-width: 768px){.stats-bars{height:120px}.stats-bar-label{writing-mode:horizontal-tb;text-orientation:initial}}.stats-hbar-wrap{display:flex;align-items:center}.stats-hbar-bg{position:relative;flex:1;height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.stats-hbar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:#0d6efde6}.card canvas{width:100%!important}.card canvas{max-width:100%}:root{--bs-secondary-color: var(--text-muted, rgba(255,255,255,.65)) }.video-quality-menu{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:4px;z-index:10}.quality-btn{font-size:10px;padding:2px 6px;border-radius:999px;opacity:.8}.quality-btn.active{background:var(--accent, #0d6efd);color:#fff;opacity:1}.fvp-root{position:relative;border-radius:12px;overflow:hidden;background:#000}.fvp-video-shell{position:relative;background:#000}.fvp-video{width:100%;height:100%;object-fit:contain;background:#000}.fvp-big-play{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:64px;height:64px;border-radius:999px;border:none;display:grid;place-items:center;background:#0009;color:#fff;font-size:24px;cursor:pointer;transition:transform .15s ease,background .15s ease}.fvp-big-play:hover{transform:scale(1.06);background:#000c}.fvp-controls{position:absolute;left:0;right:0;bottom:0;padding:8px 12px 10px;background:linear-gradient(to top,#000000d9,#0000001a);display:flex;flex-direction:column;gap:4px}.fvp-row{display:flex;align-items:center}.fvp-seek{height:4px;padding:0}.fvp-seek::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:999px;background:var(--accent, #0d6efd);margin-top:-4px}.fvp-seek::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:#ffffff4d}.fvp-seek::-moz-range-thumb{width:12px;height:12px;border-radius:999px;background:var(--accent, #0d6efd);border:none}.fvp-seek::-moz-range-track{height:4px;border-radius:999px;background:#ffffff4d}.fvp-volume{width:80px;margin:0}.fvp-volume::-webkit-slider-thumb,.fvp-volume::-moz-range-thumb{width:10px;height:10px;border-radius:999px;background:#fff}.fvp-time{min-width:95px;text-align:right}.fvp-quality .btn{font-size:11px;padding-inline:6px}.fvp-controls .btn{border-radius:999px}@media (max-width: 768px){.fvp-controls{padding:6px 8px}.fvp-time{display:none}.fvp-volume{width:60px}.fvp-quality{display:none}}
