@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{color:#ededed;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:#181818;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none}.app{flex-direction:column;height:100%;display:flex;container:app/inline-size}.app.mobile-mode{border-left:1px solid #2a2a2a;border-right:1px solid #2a2a2a;max-width:430px;margin:0 auto}.mobile-view-btn{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #333;border-radius:6px;padding:.22rem .5rem;font-size:.72rem}.mobile-view-btn.active{color:#ff0084;border-color:#ff0084}.topbar{z-index:1000;background:#111;border-bottom:1px solid #1e1e1e;flex-shrink:0;align-items:center;gap:.6rem;height:54px;padding:0 1.4rem;display:flex;position:relative;box-shadow:0 1px #000,0 2px 12px #00000040}.topbar-logo{letter-spacing:-.02em;color:#fff;white-space:nowrap;margin-right:.4rem;font-size:1.05rem;font-style:italic;font-weight:700}.topbar-right{align-items:center;gap:.6rem;margin-left:auto;display:flex}.topbar-user{color:#606060;font-size:.75rem}.topbar-welcome{display:none}.map-welcome-ctrl{color:#e8e8e8;white-space:nowrap;pointer-events:none;background:#1e1e1ed1;border-radius:5px;margin-top:54px;padding:5px 10px;font-size:.82rem;font-weight:500;box-shadow:0 1px 4px #0006}.signout-btn{color:#888;border:1px solid #2a2a2a;border-radius:6px;padding:.28rem .65rem;font-size:.75rem}.signout-btn:hover{color:#eee;border-color:#444}.lang-toggle{color:#888;border:1px solid #2a2a2a;border-radius:6px;padding:.28rem .55rem;font-size:.75rem}.lang-toggle:hover{color:#eee;border-color:#444}.tab-nav{align-items:stretch;gap:0;height:100%;display:flex}.tab-btn{color:#686868;letter-spacing:.01em;border-bottom:2px solid #0000;border-radius:0;align-items:center;height:100%;padding:0 1rem;font-size:.84rem;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab-btn:hover{color:#ccc;background:0 0}.tab-btn.active{color:#fff;border-bottom-color:#ff0084}.tab-divider{background:#444;flex-shrink:0;width:1px;margin:6px 4px}.main-content{background:#181818;flex:1;display:flex;overflow:hidden}.map-layout{width:100%;height:100%;display:flex;position:relative}.map-container{flex:1;position:relative}.map-overlay-msg{z-index:500;background:#000c;border-radius:8px;padding:.6rem 1.2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-overlay-msg.error{color:#f87171}.map-panel{background:#111;border-left:1px solid #1c1c1c;flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.panel-width-handle{cursor:ew-resize;z-index:20;touch-action:none;-webkit-user-select:none;user-select:none;width:6px;position:absolute;top:0;bottom:0;left:0}.panel-width-handle:hover{background:#ff7a0033}.panel-width-handle:active{background:#ff7a0066}.panel-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.panel-body{flex:1;min-height:0;padding:.5rem;overflow-y:auto}.panel-header{border-bottom:1px solid #2a2a2a;flex-shrink:0;justify-content:space-between;align-items:center;padding:.9rem 1rem;display:flex}.panel-title{font-size:1rem;font-weight:600}.panel-close{color:#888;border-radius:4px;padding:.2rem .4rem;font-size:1.1rem}.panel-close:hover{color:#fff;background:#2a2a2a}.panel-loading{color:#888;padding:1rem;font-size:.9rem}.panel-toc{flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.panel-toc-row{border-bottom:1px solid #222;flex-shrink:0;align-items:center;display:flex}.panel-toc-row .panel-toc-item{border-bottom:none;flex:1}.panel-toc-item{text-align:left;color:#ccc;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-bottom:1px solid #222;flex-shrink:0;width:100%;padding:.5rem .9rem;font-size:.82rem;line-height:1.5;display:block;overflow:hidden}.panel-toc-item:hover:not(.active){color:#fff;background:#1e1e1e}.panel-toc-item.active{color:#ff7a00;background:#ff7a001a;font-weight:600}.toc-item-count{color:#666;font-size:.75rem;font-weight:400}.panel-toc-item.active .toc-item-count{color:#ff7a00a6}.panel-v-drag{cursor:row-resize;background:#2a2a2a;flex-shrink:0;height:6px;transition:background .15s}.panel-v-drag:hover{opacity:.6;background:#ff7a00}.album-section{margin-bottom:.25rem}.album-section-header{z-index:10;color:#e0e0e0;text-transform:uppercase;letter-spacing:.07em;background:#1a1a1a;border-bottom:1px solid #2a2a2a;border-left:3px solid #ff7a00;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.25rem;padding:.35rem .4rem .35rem .65rem;font-size:.78rem;font-weight:600;display:flex;position:sticky;top:0}.album-section-label{flex:1;min-width:0}.album-section-nav{flex-shrink:0;gap:.2rem;display:flex}.album-nav-btn{color:#888;border-radius:3px;padding:.1rem .3rem;font-size:.75rem;line-height:1}.album-nav-btn:hover{color:#ff7a00;background:#2a2a2a}.timeline-layout{width:100%;height:100%;display:flex}.year-rail{background:#101010;border-right:1px solid #1c1c1c;flex-shrink:0;width:90px;padding:.5rem 0;overflow-y:auto}.rail-heading{text-transform:uppercase;letter-spacing:.1em;color:#444;padding:.6rem .8rem .3rem;font-size:.65rem;font-weight:600}.year-btn{text-align:center;color:#888;border-left:2px solid #0000;border-radius:0;width:100%;padding:.5rem;font-size:.92rem;transition:color .15s,border-color .15s;display:block}.year-btn:hover{color:#ddd;border-left-color:#333}.year-btn.active{color:#ff0084;border-left-color:#ff0084;font-weight:600}.timeline-main{flex:1;padding:1rem;overflow-y:auto}.timeline-hint{color:#555;text-align:center;padding:3rem;font-size:1.1rem}.month-section{margin-bottom:2rem}.month-section-header{border-bottom:1px solid #1e1e1e;align-items:baseline;gap:.7rem;margin-bottom:.7rem;padding:.5rem 0 .6rem;display:flex}.month-section-name{color:#e8e8e8;font-size:1.05rem;font-weight:600}.month-section-count{color:#666;font-size:.8rem}.month-strip{flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;display:flex}.month-btn{color:#999;border:1px solid #2a2a2a;border-radius:20px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.82rem;transition:border-color .15s,color .15s;display:flex}.month-btn:hover{color:#ddd;border-color:#555}.month-btn.active{color:#ff6eb6;background:#ff008418;border-color:#ff0084}.month-count{color:#666;font-size:.72rem}.timeline-sort-row{align-items:center;gap:.4rem;margin-bottom:1rem;display:flex}.timeline-sort-btn{color:#666;border:1px solid #2a2a2a;border-radius:20px;padding:.25rem .65rem;font-size:.78rem;transition:border-color .15s,color .15s,background .15s}.timeline-sort-btn:hover{color:#ccc;border-color:#555}.timeline-sort-btn.active{color:#ff6eb6;background:#ff008418;border-color:#ff0084}.back-to-top-wrap{justify-content:center;padding:1.5rem 0 2rem;display:flex}.back-to-top-btn{color:#aaa;cursor:pointer;background:0 0;border:1px solid #444;border-radius:20px;padding:.45rem 1.4rem;font-size:.85rem;transition:border-color .15s,color .15s}.back-to-top-btn:hover{color:#ff6eb6;border-color:#ff0084}.photo-grid-wrap{margin-bottom:1.5rem}.grid-header{z-index:5;background:#181818;border-bottom:1px solid #fff2;flex-direction:column;gap:.3rem;padding:.4rem 0 .45rem;display:flex;position:sticky;top:0}.map-panel .grid-header{background:#111}.timeline-main .grid-header,.tags-main .grid-header{padding-top:1.4rem;top:-1rem}.panel-body .grid-header{padding-top:.9rem;top:-.5rem}.latest-body .grid-header{padding-top:1.15rem;top:-.75rem}.grid-header-above{width:100%}.grid-header-above .tags-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.grid-header-above .month-strip{margin-bottom:0}.grid-header-above .album-section-hdr{padding-left:0;padding-right:0}.grid-header-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.grid-title{color:#888;font-size:.9rem;font-weight:500}.grid-count{color:#666;font-size:.82rem;font-weight:400}.grid-sort-btns{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.grid-btn-sep{background:#333;flex-shrink:0;width:1px;height:14px}.grid-sort-btn{color:#666;white-space:nowrap;background:0 0;border:1px solid #2a2a2a;border-radius:5px;padding:.2rem .55rem;font-size:.75rem}.grid-sort-btn:hover{color:#ccc;border-color:#444}.grid-sort-btn.active{color:#f97316;background:#f9731614;border-color:#f97316}.photo-grid{flex-wrap:wrap;align-items:flex-start;gap:2px;display:flex}.thumb-cell{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;flex:1 1 0;min-width:min(180px,50% - 1px);max-width:420px;position:relative}.thumb-cell img{-webkit-touch-callout:none;pointer-events:none}.thumb-nav-icons{opacity:0;pointer-events:none;z-index:20;gap:2px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.thumb-cell:hover .thumb-nav-icons,.thumb-nav-icons.mobile-visible{opacity:1;pointer-events:auto}.thumb-nav-icons.mobile-visible .thumb-nav-btn{width:32px;height:32px;font-size:1rem}.slot-reel .thumb-nav-icons{opacity:1;pointer-events:auto}.thumb-menu-icon{opacity:0;pointer-events:none;z-index:20;gap:2px;transition:opacity .15s;display:flex;position:absolute;top:4px;left:4px}.thumb-menu-icon.mobile-visible{opacity:1;pointer-events:auto}.thumb-menu-icon.mobile-visible .thumb-nav-btn{width:32px;height:32px;font-size:1rem}.thumb-nav-btn{background:#000000a6;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;line-height:1;display:flex}.thumb-nav-btn:hover{background:#ff7a00}.thumb-wa-btn{color:#25d366}.thumb-wa-btn:hover{color:#fff;background:#25d366}@keyframes photo-nav-flash{0%,to{outline-offset:3px;outline:3px solid #ff7a00;box-shadow:0 0 10px #ff7a00aa}50%{box-shadow:none;outline:none}}.photo-nav-highlight{animation:.5s ease-in-out 10 photo-nav-flash}.thumb-btn{background:#222;border-radius:0;width:100%;display:block;position:relative;overflow:hidden}.thumb-btn:hover{z-index:1}.thumb-img{object-fit:cover;pointer-events:none;width:100%;height:210px;transition:brightness .2s;display:block}.thumb-btn:hover .thumb-img{filter:brightness(.88)}.thumb-placeholder{color:#333;justify-content:center;align-items:center;width:100%;height:210px;font-size:2rem;display:flex}.thumb-lock-overlay{pointer-events:none;background:#0007;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:absolute;inset:0}.thumb-play-overlay{pointer-events:none;background:#0000008c;border:2px solid #ffffffd9;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding-left:3px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.thumb-bottom-left{z-index:2;position:absolute;bottom:6px;left:6px}.thumb-debug-btn{cursor:pointer;opacity:.35;background:#000b;border:none;border-radius:3px;padding:1px 4px;font-size:.75rem;line-height:1.4;transition:opacity .15s}.thumb-cell:hover .thumb-debug-btn{opacity:.9}@media (hover:none){.thumb-debug-btn{opacity:.55}}.thumb-bottom-right{z-index:2;align-items:center;gap:3px;display:flex;position:absolute;bottom:6px;right:6px}.thumb-cam-badge{opacity:.45;pointer-events:none;white-space:nowrap;background:#000b;border-radius:3px;padding:1px 4px;font-size:.72rem;line-height:1.4;transition:opacity .15s}.thumb-cell:hover .thumb-cam-badge{opacity:.95}@media (hover:none){.thumb-cam-badge{opacity:.65}}.thumb-privacy-btn{opacity:0;background:#000a;border-radius:4px;padding:2px 5px;font-size:.85rem;transition:opacity .15s}.thumb-cell:hover .thumb-privacy-btn{opacity:1}.thumb-privacy-btn{background:#14532dcc}.thumb-privacy-btn.is-private{opacity:1;background:#7f1d1dcc}@media (hover:none){.thumb-privacy-btn{opacity:0;pointer-events:none}.thumb-privacy-btn.is-private{opacity:1;pointer-events:auto}.thumb-overlay-active .thumb-privacy-btn{opacity:.9;pointer-events:auto}.thumb-debug-btn{opacity:0;pointer-events:none}.thumb-overlay-active .thumb-debug-btn{opacity:.9;pointer-events:auto}}.panel-header-left{flex-direction:column;gap:.3rem;min-width:0;display:flex}.panel-lock-badge{margin-right:.3rem}.album-privacy-toggle{color:#888;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.78rem;display:flex}.album-privacy-toggle input[type=checkbox]{accent-color:#ff0084;cursor:pointer}.album-privacy-toggle:hover{color:#ccc}.modal-overlay{z-index:9000;background:#000d;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{flex-direction:column;align-items:center;max-width:min(94vw,1200px);max-height:94vh;display:flex;position:relative}.modal-image-wrap{justify-content:center;align-items:center;display:flex;position:relative}.modal-thumb-bg{filter:blur(3px);z-index:0;position:absolute}.modal-img{object-fit:contain;border-radius:6px;max-width:100%;max-height:86vh;transition:filter .3s}.modal-spinner{color:#aaa;font-size:.9rem;position:absolute}.modal-footer{flex-direction:column;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.modal-footer-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.modal-meta{color:#bbb;gap:1rem;font-size:.85rem;display:flex}.modal-comment{color:#aaa;text-align:center;max-width:min(90vw,800px);font-size:.85rem;font-style:italic;line-height:1.5}.modal-close{color:#fff;z-index:9001;-webkit-tap-highlight-color:transparent;background:#ff0084;border-radius:50%;outline:none;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.68rem;display:flex;position:fixed;top:1rem;right:1.2rem}.modal-close:hover{background:#d6006f}.modal-prev,.modal-next{color:#fff;z-index:9001;-webkit-tap-highlight-color:transparent;background:#ff0084;border-radius:50%;outline:none;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-size:2.5rem;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.modal-prev{left:1rem}.modal-next{right:1rem}.modal-prev:hover,.modal-next:hover{background:#d6006f}.modal-mute-btn{z-index:9001;background:#1118;border-radius:50%;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.3rem;display:flex;position:fixed;bottom:5rem;right:1.2rem}.modal-mute-btn:hover{background:#333}[data-amplify-authenticator]{--amplify-colors-background-primary:#141414!important;--amplify-colors-background-secondary:#1a1a1a!important;--amplify-colors-border-primary:#2a2a2a!important;--amplify-colors-font-primary:#e8e8e8!important;--amplify-colors-font-secondary:#b0b0b0!important;--amplify-colors-brand-primary-80:#ff0084!important;--amplify-colors-brand-primary-100:#ff0084!important}.connectivity-fallback{z-index:9500;background:#181818;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.connectivity-fallback-box{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:22rem;display:flex}.connectivity-fallback-box p{color:#ccc;font-size:.95rem;line-height:1.5}.connectivity-fallback-box button{color:#fff;background:#ff0084;border-radius:8px;padding:.6rem 1.6rem;font-weight:600}.connectivity-fallback-box button:hover{background:#d6006f}.thumb-tooltip{opacity:0;pointer-events:none;z-index:5;background:linear-gradient(#0000 0%,#000000d1 100%);flex-direction:column;justify-content:flex-end;gap:2px;padding:2rem .6rem .5rem;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.thumb-btn:hover .thumb-tooltip{opacity:1}.tt-desc{color:#ffd0ea;font-size:.76rem;font-weight:600;line-height:1.3}.tt-place{color:#fff;font-size:.76rem;font-weight:600;line-height:1.3}.tt-date{color:#ccc;font-size:.7rem}.tt-comment{color:#bbb;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;font-style:italic;overflow:hidden}.selection-bar{background:#3d0020;border:1px solid #ff0084;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.8rem;padding:.5rem .9rem;font-size:.87rem;display:flex}.sel-count{color:#fad;margin-right:.2rem;font-weight:600}.sel-action{color:#ffcce8;border:1px solid #ff0084;border-radius:6px;padding:.22rem .6rem;font-size:.8rem}.sel-action:hover{color:#fff;background:#ff0084}.sel-clear{color:#64748b;margin-left:auto;font-size:.8rem}.sel-clear:hover{color:#cbd5e1}.thumb-select-check{color:#fff;z-index:6;pointer-events:none;background:#00000073;border:2px solid #555;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.65rem;font-weight:700;display:none;position:absolute;top:5px;left:5px}.photo-grid.has-selection .thumb-select-check{display:flex}.thumb-select-check.checked{background:#ff0084;border-color:#ff0084}.thumb-cell.selected .thumb-btn{outline-offset:-3px;outline:3px solid #ff0084}.ctx-menu{z-index:9500;background:#1e1e1e;border:1px solid #333;border-radius:8px;min-width:170px;padding:.35rem;box-shadow:0 8px 24px #0008}.ctx-item{text-align:left;color:#ddd;border-radius:5px;width:100%;padding:.45rem .9rem;font-size:.88rem;transition:background .12s;display:block}.ctx-item:hover{background:#2a2a2a}.ctx-item.danger{color:#f87171}.ctx-item.danger:hover{background:#3b1212}.add-tag-modal{background:#1a1a1a;border:1px solid #333;border-radius:12px;flex-direction:column;gap:.9rem;width:min(92vw,420px);padding:1.5rem;display:flex}.add-tag-title{font-size:1.05rem;font-weight:600}.add-tag-input-row{gap:.5rem;display:flex}.add-tag-input{color:#e8e8e8;background:#111;border:1px solid #333;border-radius:6px;outline:none;flex:1;padding:.45rem .7rem;font-size:.9rem}.add-tag-input:focus{border-color:#ff0084}.add-tag-create-btn{color:#fff;white-space:nowrap;background:#ff0084;border-radius:6px;padding:.45rem .9rem;font-size:.88rem}.add-tag-create-btn:disabled{color:#666;cursor:not-allowed;background:#333}.add-tag-or{color:#666;font-size:.8rem}.add-tag-existing{flex-wrap:wrap;gap:.4rem;display:flex}.existing-tag-btn{color:#aaa;border:1px solid #333;border-radius:20px;padding:.3rem .7rem;font-size:.82rem;transition:border-color .12s,color .12s}.existing-tag-btn:hover{color:#ff6eb6;border-color:#ff0084}.add-tag-cancel{color:#666;text-align:center;padding:.3rem;font-size:.82rem}.add-tag-cancel:hover{color:#aaa}.tag-share-label{color:#bbb;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem;display:flex}.tag-share-label input[type=checkbox]{accent-color:#ff0084;cursor:pointer;width:15px;height:15px}.tag-share-hint{color:#666;margin-left:auto;font-size:.75rem}.existing-tag-btn.shared{color:#fad;border-color:#c8006a}.existing-tag-btn.shared:hover{background:#c8006a22;border-color:#ff0084}.tag-rail-btn.shared-tag{color:#fad}.tag-rail-btn.shared-tag.active{color:#f97316;border-left-color:#f97316}.tag-rail-btn.sys-tag{color:#8cf}.tag-rail-btn.sys-tag.active{color:#f97316;border-left-color:#f97316}.tag-owner-hint{color:#666;font-size:.75rem;font-weight:400}.rail-group-heading{text-transform:uppercase;letter-spacing:.12em;color:#ff0084;border-top:1px solid #1c1c1c;margin-top:.3rem;padding:.8rem .8rem .3rem;font-size:.6rem;font-weight:700}.rail-group-heading:first-child{border-top:none;margin-top:0}.rail-group-heading--btn{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:none;align-items:center;gap:.4rem;transition:color .15s;display:flex}.rail-group-heading--btn:hover{color:#ff40a8}.rail-chevron{color:#666;flex-shrink:0;font-size:.75rem;font-style:normal;transition:transform .2s;display:inline-block;transform:rotate(0)}.rail-chevron.open{transform:rotate(90deg)}.path-tree-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;outline:none;align-items:center;gap:3px;padding-top:2px;padding-bottom:2px;padding-right:6px;transition:background .1s;display:flex}.path-tree-row:hover{background:#ffffff0f}.path-tree-row.active{background:#ff00842e}.path-tree-row.highlighted{background:#ff7a0059!important}.path-tree-arrow{color:#555;text-align:center;visibility:hidden;flex-shrink:0;width:14px;font-size:.65rem}.path-tree-arrow.visible{visibility:visible}.path-tree-row:hover .path-tree-arrow{color:#888}.path-tree-icon{flex-shrink:0;font-size:.78rem;line-height:1}.path-tree-label{color:#aaa;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.78rem;overflow:hidden}.path-tree-row.active .path-tree-label{color:#ffd0ea;font-weight:600}.path-tree-row:hover .path-tree-label{color:#e2e8f0}.rail-user-section{margin-bottom:.3rem}.rail-user-label{text-transform:uppercase;letter-spacing:.08em;color:#555;padding:.4rem .8rem .2rem;font-size:.6rem;font-weight:600}.sys-tag-filter{color:#ccc;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:5px;outline:none;width:calc(100% - 1.6rem);margin:.2rem .8rem .4rem;padding:.35rem .5rem;font-size:.78rem;display:block}.sys-tag-filter:focus{border-color:#f97316}.sys-country-group{margin-bottom:.1rem}.sys-country-heading{color:#ddd;letter-spacing:.01em;border-top:1px solid #222;margin-top:.3rem;padding:.5rem .8rem .2rem;font-size:1.07rem;font-weight:700}.sys-country-group:first-child .sys-country-heading{border-top:none;margin-top:0}.tag-rail-btn.sys-tag-city{padding-left:1.4rem;font-size:.82rem}.sys-city-group{margin-bottom:.05rem}.sys-city-heading{color:#fff;letter-spacing:.01em;padding:.25rem .8rem .1rem 1.6rem;font-size:.75rem;font-weight:600}.tag-rail-btn.sys-tag-item{padding-left:2.6rem;font-size:.8rem}.add-comment-modal{background:#1a1a1a;border:1px solid #333;border-radius:12px;flex-direction:column;gap:.9rem;width:min(92vw,460px);padding:1.5rem;display:flex}.comment-textarea{color:#e8e8e8;resize:vertical;background:#111;border:1px solid #333;border-radius:6px;outline:none;padding:.6rem .8rem;font-family:inherit;font-size:.9rem;line-height:1.5}.comment-textarea:focus{border-color:#ff0084}.comment-modal-actions{justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.tags-layout{width:100%;height:100%;display:flex}.tags-rail{background:#101010;border-right:1px solid #1c1c1c;flex-shrink:0;width:273px;padding:.5rem 0;overflow-y:auto}.tags-empty-hint{color:#555;padding:.5rem .8rem;font-size:.78rem;line-height:1.5}.tag-rail-btn{color:#999;text-align:left;border-left:2px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:.5rem .8rem;font-size:.88rem;display:flex}.tag-rail-btn:hover{color:#ddd;background:#1e1e1e}.tag-rail-btn.active{color:#f97316;border-left-color:#f97316}.tag-rail-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:1;min-width:0;overflow:hidden}.tag-rail-right{flex-shrink:0;align-items:center;gap:.3rem;margin-left:.4rem;display:flex}.tag-rail-count{color:#555;flex-shrink:0;font-size:.72rem}.tag-rail-del{color:#555;opacity:0;border-radius:3px;padding:0 .15rem;font-size:.9rem;line-height:1;transition:opacity .15s,color .15s}.tag-rail-btn:hover .tag-rail-del{opacity:1}.tag-rail-del:hover{color:#f87171;background:#2a1010}.tags-resize-handle{cursor:col-resize;z-index:1;background:0 0;flex-shrink:0;width:5px;transition:background .15s}.tags-resize-handle:hover,.tags-resize-handle:active{background:#f97316}.tags-main{flex:1;min-width:0;padding:1rem;overflow-y:auto}.tags-header{align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.tags-header-text{word-break:break-word;flex:1;min-width:0;font-size:1.1rem;line-height:1.4}.tags-selected-name{font-size:.77rem;font-weight:600}.tags-photo-count{color:#94a3b8;font-size:.82rem;font-weight:400}.path-copy-btn{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #334155;border-radius:6px;flex-shrink:0;padding:.3rem .7rem;font-size:.78rem}.path-copy-btn:hover{color:#d4a843;border-color:#d4a843}.tag-delete-btn{color:#f87171;border:1px solid #3b1212;border-radius:6px;padding:.3rem .6rem;font-size:.78rem}.tag-delete-btn:hover{background:#3b1212}.tag-scope-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:#aaa;border:1px solid #2a2a2a;border-radius:6px;align-items:center;gap:.5rem;padding:.25rem .5rem;font-size:.8rem;transition:border-color .15s;display:inline-flex}.tag-scope-toggle:hover{color:#ddd;border-color:#444}.tag-scope-toggle input[type=checkbox]{appearance:none;cursor:pointer;background:#333;border:1px solid #555;border-radius:9px;flex-shrink:0;width:32px;height:18px;transition:background .2s;position:relative}.tag-scope-toggle input[type=checkbox]:after{content:"";background:#888;border-radius:50%;width:12px;height:12px;transition:left .2s,background .2s;position:absolute;top:2px;left:2px}.tag-scope-toggle input[type=checkbox]:checked{background:#1a3a1a;border-color:#4a8a4a}.tag-scope-toggle input[type=checkbox]:checked:after{background:#6ecf6e;left:16px}.tag-scope-label{white-space:nowrap}.tagged-albums{margin-bottom:1.5rem}.tagged-section-label{color:#666;margin-bottom:.6rem;font-size:.8rem}.album-cards{flex-direction:column;gap:.4rem;display:flex}.album-card{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.album-card-title{color:#ddd;font-size:.9rem}.album-card-open{color:#ff6eb6;font-size:.78rem}.album-card-open:hover{text-decoration:underline}.album-expand{margin-top:.8rem}.upload-view{flex-direction:column;flex:1;align-items:center;gap:1.2rem;padding:1.5rem;display:flex;overflow-y:auto}.drop-zone{cursor:pointer;border:2px dashed #333;border-radius:16px;flex-direction:column;align-items:center;gap:.7rem;width:100%;max-width:560px;padding:2.5rem 1rem;transition:border-color .15s,background .15s;display:flex}.drop-zone:hover,.drop-zone.drag-over{background:#ff00840a;border-color:#ff0084}.drop-icon{font-size:2.5rem}.drop-hint{color:#777;text-align:center;font-size:.9rem}.upload-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;width:100%;max-width:700px;display:grid}.upload-cell{background:#1a1a1a;border-radius:6px;position:relative;overflow:hidden}.upload-thumb{object-fit:cover;width:100%;height:100px;display:block}.upload-status-badge{filter:drop-shadow(0 1px 2px #000a);font-size:1rem;position:absolute;top:4px;right:4px}.upload-progress-bar{background:#333;height:3px;position:absolute;bottom:0;left:0;right:0}.upload-progress-fill{background:#ff0084;height:100%;transition:width .2s}.status-done .upload-thumb{opacity:.6}.status-error .upload-thumb{opacity:.4}.status-exists .upload-thumb{opacity:.5}.upload-start-btn{color:#fff;background:#ff0084;border-radius:10px;width:100%;max-width:400px;padding:.7rem 2rem;font-size:1rem;font-weight:600}.upload-start-btn:disabled{color:#666;cursor:not-allowed;background:#333}.upload-done-msg{color:#6ee7b7;flex-direction:column;align-items:center;gap:.7rem;font-size:1rem;display:flex}.upload-processing-hint{color:#666;text-align:center;font-size:.82rem}.latest-layout{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.latest-subtabs{border-bottom:1px solid #2a2a2a;flex-shrink:0;gap:.5rem;padding:.75rem 1rem;display:flex}.latest-pill{color:#999;border:1px solid #2a2a2a;border-radius:20px;padding:.38rem 1rem;font-size:.85rem;transition:background .15s,color .15s,border-color .15s}.latest-pill:hover{color:#ddd;background:#1e1e1e;border-color:#444}.latest-pill.active{color:#fff;background:#ff0084;border-color:#ff0084}.latest-clear-btn{color:#888;border:1px solid #2a2a2a;border-radius:6px;margin-left:auto;padding:.3rem .7rem;font-size:.75rem;transition:background .12s,color .12s,border-color .12s}.latest-clear-btn:hover{color:#f87171;background:#2a0a0a;border-color:#5a1a1a}.latest-body{flex:1;padding:.75rem 1rem;overflow-y:auto}.latest-item-date{color:#505050;white-space:nowrap;flex-shrink:0;font-size:.72rem}.latest-tag-cards{flex-direction:column;gap:.6rem;display:flex}.latest-tag-card{background:#111;border:1px solid #1e1e1e;border-radius:10px;transition:border-color .15s;overflow:hidden}.latest-tag-card:hover{border-color:#2a2a2a}.latest-tag-header{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px 6px 0 0;align-items:center;gap:.6rem;width:100%;padding:.65rem .9rem .5rem;display:flex}.latest-tag-header:hover{background:#1e1e1e}.latest-tag-header:hover .latest-tag-name{color:#ff7a00}.latest-tag-icon{flex-shrink:0;font-size:1rem}.latest-tag-name{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden}.latest-tag-meta{color:#505050;flex-shrink:0;font-size:.72rem}.rosi-layout{width:100%;height:100%;padding:.75rem 1rem;overflow-y:auto}.rosi-albums{flex-direction:column;gap:.6rem;display:flex}.rosi-album-card{background:#111;border:1px solid #1e1e1e;border-radius:10px;transition:border-color .15s;overflow:hidden}.rosi-album-card:hover{border-color:#2a2a2a}.rosi-album-header{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:.75rem 1rem;display:flex}.rosi-album-header:hover{background:#1e1e1e}.rosi-album-header:hover .rosi-album-name{color:#ff7a00}.rosi-album-icon{flex-shrink:0;font-size:1.1rem}.rosi-album-name{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.95rem;font-weight:600;overflow:hidden}.rosi-album-count{color:#505050;flex-shrink:0;font-size:.78rem}.rosi-album-chevron{color:#505050;flex-shrink:0;font-size:.8rem}.rosi-album-card .photo-grid-wrap{margin-bottom:0;padding:0 1rem 1rem}.latest-strip{-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;gap:6px;padding:0 .9rem .7rem;display:flex;overflow-x:auto}.latest-strip::-webkit-scrollbar{height:4px}.latest-strip::-webkit-scrollbar-thumb{background:#333;border-radius:2px}.latest-strip-cell{flex-shrink:0;position:relative}.latest-strip-thumb-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;display:block}.latest-strip-thumb{object-fit:cover;border-radius:6px;width:120px;height:90px;display:block}.latest-strip-nav{opacity:0;gap:2px;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.latest-strip-cell:hover .latest-strip-nav{opacity:1}@media (hover:none){.latest-strip-nav{opacity:.7}}.latest-strip-nav button{cursor:pointer;background:#000b;border:none;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:.65rem;display:flex}.latest-strip-nav button:hover{background:#ff7a00}.latest-strip-clip{cursor:pointer;opacity:0;background:#000b;border:none;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:.65rem;transition:opacity .15s;display:flex;position:absolute;bottom:2px;right:2px}.latest-strip-cell:hover .latest-strip-clip{opacity:.9}@media (hover:none){.latest-strip-clip{opacity:.55}}.latest-strip-clip:hover{background:#ff7a00}.latest-strip-more{color:#666;background:#1a1a1a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:54px;font-size:.8rem;display:flex}.latest-comment-cards{flex-direction:column;gap:.6rem;display:flex}.latest-comment-card{background:#111;border:1px solid #1e1e1e;border-radius:10px;margin-bottom:.6rem;transition:border-color .15s;overflow:hidden}.latest-comment-header{justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem .9rem .4rem;display:flex}.latest-comment-card.clickable{cursor:pointer}.latest-comment-card:hover{border-color:#2a2a2a}.latest-comment-card.clickable:hover{border-color:#333}.latest-comment-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:120px;height:96px}.latest-comment-no-thumb{background:#1a1a1a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:96px;font-size:1.5rem;display:flex}.latest-comment-body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.latest-comment-text{color:#d8d8d8;font-size:.88rem;font-style:italic;line-height:1.45}.latest-comment-place{color:#555;font-size:.73rem}.latest-comment-date{align-self:flex-start;margin-left:auto;padding-top:.1rem}.stats-layout{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem 2rem;display:flex;overflow-y:auto}.stats-totals-row{flex-wrap:wrap;gap:1rem;display:flex}.stats-kpi{background:#1f1f1f;border:1px solid #2a2a2a;border-radius:12px;flex-direction:column;gap:.3rem;min-width:160px;padding:1.2rem 1.8rem;display:flex}.stats-kpi.secondary{opacity:.7}.stats-kpi-num{color:#ff0084;letter-spacing:-.02em;font-size:2.2rem;font-weight:700;line-height:1}.stats-kpi.secondary .stats-kpi-num{color:#aaa}.stats-kpi-label{color:#666;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.stats-card{background:#1f1f1f;border:1px solid #2a2a2a;border-radius:12px;padding:1.2rem 1.4rem 1rem}.stats-card-title{text-transform:uppercase;letter-spacing:.08em;color:#686868;margin-bottom:1rem;font-size:.78rem;font-weight:600}.slots-layout{background:#080606;justify-content:center;align-items:center;width:100%;height:100%;padding:1.5rem;display:flex;overflow:auto}.slots-machine{background:linear-gradient(160deg,#1c1108 0%,#0e0a05 100%);border:3px solid #6b4c18;border-radius:24px;flex-direction:column;align-items:center;gap:1.4rem;width:100%;max-width:860px;padding:2rem 2rem 1.6rem;display:flex;box-shadow:0 0 60px #6b4c1830,inset 0 0 40px #00000060}.slots-header-row{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.slots-title{letter-spacing:.12em;text-transform:uppercase;color:#d4a843;text-shadow:0 0 14px #d4a84370;font-size:1.3rem;font-weight:700}.slots-grid{grid-template-columns:repeat(var(--todays-cols,5), 1fr);gap:10px;width:100%;display:grid}.slot-reel{aspect-ratio:3/2;background:#0a0705;border:2px solid #3a2810;border-radius:10px;transition:border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.slot-reel.clickable{cursor:pointer}.slot-reel.clickable:hover{border-color:#d4a843;box-shadow:0 0 14px #d4a84350}.slot-reel.spinning{border-color:#ff0084;box-shadow:0 0 12px #ff008460}.slot-reel.landed{border-color:#22c55e;box-shadow:0 0 20px #22c55e80}.slot-img{object-fit:cover;width:100%;height:100%;display:block}@keyframes reel-spin{0%{filter:blur()brightness(1.1)saturate(1.2)}30%{filter:blur(5px)brightness(.6)saturate(.4)}70%{filter:blur(5px)brightness(1.5)saturate(.4)}to{filter:blur()brightness(1.1)saturate(1.2)}}.slot-reel.spinning .slot-img{animation:.13s linear infinite reel-spin}@keyframes reel-land{0%{filter:brightness(3)saturate(0)}40%{filter:brightness(1.6)saturate(1.4)}to{filter:brightness()saturate()}}.slot-reel.landed .slot-img{animation:.45s ease-out forwards reel-land}.slot-empty{opacity:.15;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.8rem;display:flex}.slots-lever{color:#fff;letter-spacing:.06em;background:linear-gradient(#e53e3e 0%,#9b1c1c 60%,#7f1d1d 100%);border:3px solid #7f1d1d;border-radius:50px;padding:.85rem 3.5rem;font-size:1.15rem;font-weight:800;transition:transform 80ms,box-shadow 80ms;box-shadow:0 5px #5a1212,0 8px 24px #e53e3e30}.slots-lever:hover:not(:disabled){transform:translateY(2px);box-shadow:0 3px #5a1212,0 5px 16px #e53e3e30}.slots-lever:active:not(:disabled){transform:translateY(5px);box-shadow:0 0 #5a1212,0 2px 10px #e53e3e20}.slots-lever:disabled{cursor:not-allowed;background:linear-gradient(#444 0%,#2a2a2a 100%);border-color:#1a1a1a;box-shadow:0 5px #111}@keyframes lever-pulse{0%,to{box-shadow:0 5px #111,0 0 24px #ff008440}50%{box-shadow:0 5px #111,0 0 38px #ff008490}}.slots-lever.spinning{animation:.6s ease-in-out infinite lever-pulse}.slots-hint{color:#6b4c18;text-align:center;max-width:340px;font-size:.82rem;line-height:1.6}.slots-header-btns{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.slots-todays-btn{color:#fff;letter-spacing:.05em;white-space:nowrap;background:linear-gradient(#2563eb 0%,#1d4ed8 60%,#1e3a8a 100%);border:2px solid #1e3a8a;border-radius:50px;padding:.65rem 1.8rem;font-size:.95rem;font-weight:700;transition:transform 80ms,box-shadow 80ms;box-shadow:0 4px #0f2266,0 6px 18px #2563eb30}.slots-todays-btn:hover:not(:disabled){transform:translateY(2px);box-shadow:0 2px #0f2266,0 4px 12px #2563eb30}.slots-todays-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 #0f2266,0 2px 8px #2563eb20}.slots-todays-btn:disabled{cursor:not-allowed;background:linear-gradient(#444 0%,#2a2a2a 100%);border-color:#1a1a1a;box-shadow:0 4px #111}.slot-year-badge{color:#d4a843;letter-spacing:.06em;pointer-events:none;background:#000000b8;border-radius:4px;padding:2px 7px;font-size:.7rem;font-weight:700;position:absolute;bottom:6px;left:6px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#333;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555}@media (width<=767px){.topbar{flex-wrap:wrap;gap:0;height:auto;padding:.45rem .8rem 0}.topbar-logo{flex:1;margin-right:0;padding-bottom:.45rem;font-size:.92rem}.topbar-right{gap:.45rem;padding-bottom:.45rem}.topbar-user{display:none}.topbar-welcome{color:#aaa;white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;min-width:0;margin-left:5ch;font-size:.72rem;display:inline-flex;position:static;overflow:hidden;transform:none}.topbar-logo{flex:none}.topbar-right{margin-left:0}.map-welcome-ctrl{display:none}.lang-toggle,.signout-btn{padding:.22rem .42rem;font-size:.72rem}.tab-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-top:1px solid #1e1e1e;gap:0;width:100%;height:38px;overflow:auto hidden}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{white-space:nowrap;flex-shrink:0;height:100%;padding:0 .85rem;font-size:.78rem}.map-layout{flex-direction:column;position:relative}.map-container{width:100%!important}.map-panel{z-index:800;border-top:1px solid #333;border-left:none;border-radius:20px 20px 0 0;position:fixed;bottom:0;left:0;right:0;width:100%!important}.panel-width-handle{display:none}.panel-header{cursor:grab;touch-action:none}.panel-header:before{content:"";background:#444;border-radius:2px;width:40px;height:4px;margin:0 auto .4rem;display:block}.year-rail{width:62px}.rail-heading{padding:.4rem .4rem .2rem;font-size:.6rem}.year-btn{padding:.45rem .2rem;font-size:.78rem}.tags-layout{flex-direction:column;height:100%}.tags-rail{border-bottom:1px solid #2a2a2a;border-right:none;flex-direction:column;flex-shrink:0;width:100%;height:25vh;max-height:25vh;padding:.3rem 0;display:block;overflow:hidden auto}.tags-resize-handle{display:none}.tags-resize-handle-mobile{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:22px;display:flex}.tags-resize-handle-mobile:before{content:"";background:#f87171;border-radius:3px;width:48px;height:5px;transition:background .15s;display:block}.tags-resize-handle-mobile:active:before{background:#ef4444}.tags-main{flex:1;min-height:0;overflow-y:auto}.timeline-main{padding:.7rem}.timeline-main .grid-header{padding-top:1.1rem;top:-.7rem}.photo-grid{gap:3px}.thumb-cell{min-width:min(120px,50% - 1.5px);max-width:260px}.thumb-img,.thumb-placeholder{height:130px}.modal-content{max-width:100vw;max-height:100vh;padding:0}.modal-img{border-radius:0;max-height:80vh}.modal-close{width:2.64rem;height:2.64rem;font-size:1.44rem;top:.6rem;right:.6rem}.modal-prev,.modal-next{width:3rem;height:3rem;font-size:2rem;top:auto;bottom:12vh;transform:none}.modal-prev{left:.5rem}.modal-next{right:.5rem}.ctx-item{padding:.65rem 1rem;font-size:.92rem}.drop-zone{padding:1.8rem .8rem}.upload-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.upload-thumb{height:85px}.slots-layout{align-items:flex-start;padding:.8rem}.slots-machine{gap:1rem;padding:1.2rem 1rem 1rem}.slots-title{font-size:1rem}.slots-grid{grid-template-columns:repeat(2,1fr);gap:6px}.slots-lever{padding:.55rem 1.4rem;font-size:.9rem}.latest-subtabs{gap:.35rem;padding:.5rem .6rem}.latest-pill{padding:.3rem .7rem;font-size:.78rem}.latest-body{padding:.5rem .6rem}.latest-body .grid-header{padding-top:.9rem;top:-.5rem}.latest-thumb{width:42px;height:42px}}@container app (width<=767px){.topbar{flex-wrap:wrap;gap:0;height:auto;padding:.45rem .8rem 0}.topbar-logo{flex:none;margin-right:0;padding-bottom:.45rem;font-size:.92rem}.topbar-right{gap:.45rem;margin-left:0;padding-bottom:.45rem}.topbar-user{display:none}.topbar-welcome{color:#aaa;white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;min-width:0;margin-left:5ch;font-size:.72rem;display:inline-flex;position:static;overflow:hidden;transform:none}.map-welcome-ctrl{display:none}.lang-toggle,.signout-btn{padding:.22rem .42rem;font-size:.72rem}.tab-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-top:1px solid #1e1e1e;gap:0;width:100%;height:38px;overflow:auto hidden}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{white-space:nowrap;flex-shrink:0;height:100%;padding:0 .85rem;font-size:.78rem}.map-layout{flex-direction:column;position:relative}.map-container{width:100%!important}.map-panel{z-index:800;border-top:1px solid #333;border-left:none;border-radius:20px 20px 0 0;position:fixed;bottom:0;left:0;right:0;width:100%!important}.panel-width-handle{display:none}.panel-header{cursor:grab;touch-action:none}.panel-header:before{content:"";background:#444;border-radius:2px;width:40px;height:4px;margin:0 auto .4rem;display:block}.year-rail{width:62px}.rail-heading{padding:.4rem .4rem .2rem;font-size:.6rem}.year-btn{padding:.45rem .2rem;font-size:.78rem}.tags-layout{flex-direction:column;height:100%}.tags-rail{border-bottom:1px solid #2a2a2a;border-right:none;flex-direction:column;flex-shrink:0;width:100%;height:25vh;max-height:25vh;padding:.3rem 0;display:block;overflow:hidden auto}.tags-resize-handle{display:none}.tags-resize-handle-mobile{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:22px;display:flex}.tags-resize-handle-mobile:before{content:"";background:#f87171;border-radius:3px;width:48px;height:5px;transition:background .15s;display:block}.tags-resize-handle-mobile:active:before{background:#ef4444}.tags-main{flex:1;min-height:0;overflow-y:auto}.timeline-main{padding:.7rem}.timeline-main .grid-header{padding-top:1.1rem;top:-.7rem}.photo-grid{gap:3px}.thumb-cell{min-width:min(120px,50% - 1.5px);max-width:260px}.thumb-img,.thumb-placeholder{height:130px}.modal-content{max-width:100vw;max-height:100vh;padding:0}.modal-img{border-radius:0;max-height:80vh}.modal-close{width:2.64rem;height:2.64rem;font-size:1.44rem;top:.6rem;right:.6rem}.modal-prev,.modal-next{width:3rem;height:3rem;font-size:2rem;top:auto;bottom:12vh;transform:none}.modal-prev{left:.5rem}.modal-next{right:.5rem}.ctx-item{padding:.65rem 1rem;font-size:.92rem}.drop-zone{padding:1.8rem .8rem}.upload-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}.upload-thumb{height:85px}.slots-layout{align-items:flex-start;padding:.8rem}.slots-machine{gap:1rem;padding:1.2rem 1rem 1rem}.slots-title{font-size:1rem}.slots-grid{grid-template-columns:repeat(2,1fr);gap:6px}.slots-lever{padding:.55rem 1.4rem;font-size:.9rem}.latest-subtabs{gap:.35rem;padding:.5rem .6rem}.latest-pill{padding:.3rem .7rem;font-size:.78rem}.latest-body{padding:.5rem .6rem}.latest-body .grid-header{padding-top:.9rem;top:-.5rem}.latest-thumb{width:42px;height:42px}}@supports (padding-bottom:env(safe-area-inset-bottom)){.topbar{padding-top:max(.45rem, env(safe-area-inset-top))}.map-panel,.year-rail{padding-bottom:env(safe-area-inset-bottom)}}.app-footer{text-align:center;color:#666;background:#111;border-top:1px solid #2a2a2a;flex-shrink:0;padding:.55rem 1rem;font-size:.75rem}.app-footer strong{color:#999}.modal-error-note{color:#f88;white-space:nowrap;background:#1a0a0a;border:1px solid #622;border-radius:6px;padding:.3rem .7rem;font-size:.72rem;position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}.modal-heic-hint{color:#888;white-space:nowrap;pointer-events:none;background:#111b;border-radius:6px;padding:.25rem .6rem;font-size:.7rem;position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}.modal-hd-btn{color:#ccc;background:#222;border:1px solid #555;border-radius:6px;padding:.35rem .9rem;font-size:.78rem;font-weight:600}.sync-view{flex-direction:column;flex:1;gap:1.1rem;max-width:520px;margin:0 auto;padding:1.5rem 1rem;display:flex;overflow-y:auto}.sync-heading{color:#fff;font-size:1.1rem;font-weight:600}.sync-auto-toggle{color:#ccc;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.55rem;font-size:.9rem;display:flex}.sync-auto-toggle input[type=checkbox]{accent-color:#ff0084;cursor:pointer;width:1rem;height:1rem}.sync-last{color:#888;font-size:.82rem}.sync-last strong{color:#bbb}.sync-notes{flex-direction:column;gap:.35rem;display:flex}.sync-note{border-left:3px solid;border-radius:6px;padding:.35rem .7rem;font-size:.8rem}.sync-note--public{color:#aed;background:#0e2a22;border-color:#3a9}.sync-note--private{color:#e8c;background:#2a1a0e;border-color:#c84}.sync-first-run{color:#777;background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:.55rem .8rem;font-size:.78rem;line-height:1.5}.sync-btn{color:#fff;background:#ff0084;border-radius:8px;align-self:flex-start;padding:.6rem 1.4rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.sync-btn:disabled{opacity:.45;cursor:default}.sync-btn:not(:disabled):hover{opacity:.85}.sync-btn--stop{background:#7f1d1d}.sync-progress{flex-direction:column;gap:.45rem;display:flex}.sync-enum-msg{color:#aaa;font-size:.82rem}.sync-progress-bar{background:#2a2a2a;border-radius:3px;height:6px;overflow:hidden}.sync-progress-fill{background:#ff0084;border-radius:3px;height:100%;transition:width .3s}.sync-progress-label{color:#888;font-size:.78rem}.sync-current-file{color:#666;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:220px;font-style:italic;display:inline-block;overflow:hidden}.sync-result{color:#7ed;background:#0d2a18;border:1px solid #1a5c34;border-radius:8px;padding:.65rem .9rem;font-size:.85rem}.sync-result--error{color:#e88;background:#2a0d0d;border-color:#5c1a1a}.sync-stats{flex-direction:column;gap:.3rem;display:flex}.sync-stat{display:block}.sync-stat--up{color:#7ed}.sync-stat--skip{color:#999}.sync-stat--fail{color:#e88}.sync-failed-files{border-top:1px solid #374151;margin-top:.6rem;padding-top:.5rem}.sync-failed-files-label{color:#f87171;margin-bottom:.3rem;font-size:.7rem}.sync-failed-file{color:#9ca3af;padding:.1rem 0;font-family:monospace;font-size:.7rem}.tab-btn--syncing{animation:1.2s ease-in-out infinite tab-pulse}.sync-fix-section{border-top:1px solid #2a2a2a;flex-direction:column;gap:.4rem;padding-top:.9rem;display:flex}.sync-fix-btn{color:#fca5a5;background:#7f1d1d;border:1px solid #b91c1c;border-radius:8px;align-self:flex-start;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600}.sync-fix-btn:disabled{opacity:.45}.sync-fix-result{color:#bbb;white-space:pre-wrap;font-size:.78rem}@keyframes tab-pulse{0%,to{opacity:1}50%{opacity:.55}}.sync-albums-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.sync-load-btn{color:#94a3b8;background:#1e293b;border:1px solid #334155;border-radius:8px;align-self:flex-start;padding:.45rem 1.1rem;font-size:.85rem;font-weight:600;transition:background .15s}.sync-load-btn:not(:disabled):hover{background:#263044}.sync-load-btn:disabled{opacity:.45}.sync-albums-section{flex-direction:column;gap:.75rem;display:flex}.sync-album-list{flex-direction:column;gap:.6rem;display:flex}.sync-album-select-all{justify-content:flex-end;display:flex}.sync-select-all-btn{color:#9ca3af;cursor:pointer;background:0 0;border:1px solid #374151;border-radius:.35rem;padding:.2rem .7rem;font-size:.75rem}.sync-select-all-btn:not(:disabled):hover{color:#e5e7eb;background:#1f2937}.sync-select-all-btn:disabled{opacity:.4;cursor:default}.sync-album-row{background:#111827;border:1px solid #1f2937;border-radius:10px;flex-direction:column;gap:.55rem;padding:.75rem .9rem;transition:opacity .15s;display:flex}.sync-album-row--disabled{opacity:.5}.sync-album-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.sync-album-check{color:#e2e8f0;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.sync-album-check input[type=checkbox]{accent-color:#ff0084;cursor:pointer;flex-shrink:0;width:1rem;height:1rem}.sync-album-name{font-weight:600}.sync-album-count{opacity:.7;font-size:.8em;font-weight:400}.sync-album-create-folder{color:#94a3b8;cursor:pointer;align-items:center;gap:.45rem;padding:.1rem 0;font-size:.8rem;display:flex}.sync-album-create-folder input[type=checkbox]{accent-color:#d4a843;cursor:pointer;width:.85rem;height:.85rem}.sync-album-private-check{color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.sync-album-private-check input[type=checkbox]{accent-color:#ff0084;cursor:pointer;width:.9rem;height:.9rem}.sync-album-private-check--desktop{font-size:.88rem}.sync-album-fields{flex-direction:column;gap:.4rem;display:flex}.sync-album-input{color:#cbd5e1;background:#0f172a;border:1px solid #334155;border-radius:6px;width:100%;padding:.4rem .65rem;font-size:.82rem;transition:border-color .15s}.sync-album-input::placeholder{color:#475569}.sync-album-input:focus{border-color:#ff0084;outline:none}.sync-album-input:disabled{opacity:.45}.sync-tag-preview{color:#64748b;padding:.2rem .1rem;font-size:.75rem;font-style:italic}.sync-desktop-section{flex-direction:column;gap:.75rem;display:flex}.sync-desktop-folder{background:#111827;border:1px solid #1f2937;border-radius:10px;flex-direction:column;gap:.55rem;padding:.75rem .9rem;display:flex}.sync-desktop-folder-name{color:#e2e8f0;align-items:center;gap:.6rem;font-size:.9rem;font-weight:600;display:flex}.sync-desktop-count{color:#64748b;font-size:.78rem;font-weight:400}.modal-video{background:#000;border-radius:4px;max-width:min(90vw,1200px);max-height:80vh}.confirm-dialog{text-align:center;color:#ddd;background:#1a1a1a;border:1px solid #333;border-radius:12px;width:90%;max-width:420px;padding:1.5rem 2rem;font-size:.95rem}.confirm-actions{justify-content:center;gap:.8rem;margin-top:1.2rem;display:flex}.confirm-cancel{color:#bbb;background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:.45rem 1.2rem;font-size:.88rem}.confirm-cancel:hover{color:#eee;background:#333}.confirm-delete{color:#fca5a5;background:#5c1a1a;border:1px solid #b91c1c;border-radius:8px;padding:.45rem 1.2rem;font-size:.88rem;font-weight:600}.confirm-delete:hover{background:#7f1d1d}.wa-share-dialog{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:12px;flex-direction:column;gap:.9rem;width:min(340px,92vw);padding:1.25rem;display:flex}.wa-share-header{color:#eee;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.wa-share-preview{object-fit:cover;border-radius:8px;width:100%;max-height:220px;display:block}.wa-share-caption{resize:vertical;color:#ddd;box-sizing:border-box;background:#111;border:1px solid #333;border-radius:6px;width:100%;min-height:60px;padding:.5rem .6rem;font-family:inherit;font-size:.9rem}.wa-share-caption:focus{border-color:#25d366;outline:none}.wa-share-actions{justify-content:flex-end;gap:.6rem;display:flex}.wa-share-send{color:#fff;cursor:pointer;background:#25d366;border:none;border-radius:6px;padding:.4rem 1.1rem;font-size:.85rem;font-weight:600}.wa-share-send:hover{background:#1ebe5a}.wa-share-send:disabled{opacity:.6;cursor:default}.trash-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.trash-empty{color:#555;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.8rem;display:flex}.trash-empty span{font-size:3rem}.trash-empty p{font-size:1rem}.trash-toolbar{background:#111;border-bottom:1px solid #222;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.8rem;padding:.6rem 1rem;display:flex}.trash-select-all{color:#aaa;cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.trash-count{color:#666;margin-right:auto;font-size:.82rem}.trash-btn{border-radius:6px;padding:.35rem .9rem;font-size:.82rem;font-weight:600}.trash-btn:disabled{opacity:.4;cursor:not-allowed}.trash-btn.restore{color:#7ed;background:#1a3a1a;border:1px solid #2d6a2d}.trash-btn.restore:hover:not(:disabled){background:#242}.trash-btn.delete-forever{color:#e88;background:#3a1a1a;border:1px solid #6a2d2d}.trash-btn.delete-forever:hover:not(:disabled){background:#4a2222}.trash-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px;padding:8px;display:grid;overflow-y:auto}.trash-cell{cursor:pointer;border:2px solid #0000;border-radius:4px;position:relative;overflow:hidden}.trash-cell.selected{border-color:#ff0084}.trash-img{object-fit:cover;width:100%;display:block}.trash-check{color:#fff;background:#0006;border:2px solid #fff8;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.85rem;display:flex;position:absolute;top:6px;left:6px}.trash-check.checked{background:#ff0084;border-color:#ff0084}.display-name-modal{background:#1e1e1e;border:1px solid #2a2a2a;border-radius:16px;flex-direction:column;align-items:center;gap:1rem;width:min(380px,90vw);padding:2.5rem 2rem;display:flex;box-shadow:0 24px 60px #00000080}.display-name-icon{font-size:2.8rem;line-height:1}.display-name-title{color:#fff;text-align:center;font-size:1.3rem;font-weight:700}.display-name-hint{color:#888;text-align:center;font-size:.88rem}.display-name-input{color:#eee;background:#111;border:1px solid #2a2a2a;border-radius:8px;outline:none;width:100%;margin-top:.4rem;padding:.6rem .9rem;font-family:inherit;font-size:1rem}.display-name-input:focus{border-color:#ff0084}.display-name-save{color:#fff;background:#ff0084;border-radius:8px;width:100%;margin-top:.4rem;padding:.65rem 1rem;font-size:.95rem;font-weight:600;transition:background .15s}.display-name-save:hover:not(:disabled){background:#e0006e}.display-name-save:disabled{opacity:.4;cursor:not-allowed}.usage-wrap{max-width:960px;height:100%;margin:0 auto;padding:1.5rem 1rem 3rem;overflow-y:auto}.usage-title{color:#eee;margin-bottom:1.5rem;font-size:1.4rem;font-weight:700}.usage-loading,.usage-error,.usage-empty{color:#888;text-align:center;padding:2rem 0}.usage-error{color:#f87171}.usage-section{margin-bottom:2rem}.usage-section h3{color:#f97316;margin-bottom:.75rem;font-size:1rem;font-weight:600}.usage-table-scroll{overflow-x:auto}.usage-table{border-collapse:collapse;width:100%;font-size:.85rem}.usage-table th,.usage-table td{text-align:center;color:#ccc;white-space:nowrap;border-bottom:1px solid #222;padding:.4rem .75rem}.usage-table th{color:#888;font-weight:500}.usage-table td:first-child{text-align:left;color:#aaa;font-family:monospace}.usage-logged-in{font-weight:700;color:#4ade80!important}.usage-tab-bars{flex-direction:column;gap:.45rem;display:flex}.usage-bar-row{align-items:center;gap:.6rem;display:flex}.usage-bar-label{text-align:right;color:#aaa;flex-shrink:0;width:90px;font-size:.82rem}.usage-bar-track{background:#222;border-radius:7px;flex:1;height:14px;overflow:hidden}.usage-bar-fill{background:#f97316;border-radius:7px;height:100%;transition:width .3s}.usage-bar-value{color:#888;width:36px;font-size:.8rem}.usage-top-row{flex-wrap:wrap;gap:1.5rem;display:flex}.usage-top-section{flex:1;min-width:260px}.usage-top-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.usage-top-list li{background:#111;border-radius:8px;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.5rem .75rem;display:flex}.usage-album-title{color:#ccc;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.87rem;overflow:hidden}.usage-album-count{color:#888;flex-shrink:0;font-size:.8rem}.fav-star{cursor:pointer;color:#666;opacity:0;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;padding:2px 5px;font-size:.82rem;line-height:1;transition:opacity .12s,color .12s}.fav-star:hover{color:gold;opacity:1}.fav-star--on{color:gold;opacity:1!important}.path-tree-row:hover .fav-star{opacity:.6}.path-tree-row .fav-star--on{opacity:1}.panel-toc-row:hover .fav-star{opacity:.6}.panel-toc-row .fav-star--on{opacity:1}.fav-row{align-items:center;gap:2px;padding:0 2px;display:flex}.fav-row .tag-rail-btn{flex:1;min-width:0}.album-section-hdr{justify-content:space-between;align-items:center;gap:4px;padding:5px 10px 3px;display:flex}.album-section-title{color:#aaa;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.78rem;font-weight:600;overflow:hidden}.album-section-hdr .fav-star{opacity:.5}.album-section-hdr:hover .fav-star{opacity:1}.album-section-count{color:#777;font-size:.72rem;font-weight:400}.um-layout{max-width:900px;height:100%;padding:1.5rem;overflow-y:auto}.um-header{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.um-header h2{margin:0;font-size:1.3rem}.um-add-user-btn{color:#fff;cursor:pointer;background:#ff7a00;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600}.um-add-user-btn:hover{background:#e06800}.um-msg{color:#4ade80;font-size:.85rem}.um-table{background:#1a1a1a;border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.um-row{background:#111;grid-template-columns:2fr 1fr 1fr 1.5fr 1fr;align-items:center;gap:.5rem;padding:.7rem 1rem;font-size:.85rem;display:grid}.um-row-header{color:#888;background:#0a0a0a;font-weight:700}.um-email{word-break:break-all;color:#a0a0ff}.um-row-actions{gap:.4rem;display:flex}.um-row-actions button{color:#ccc;cursor:pointer;background:#222;border:1px solid #333;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.um-row-actions button:hover{background:#333}.um-empty{text-align:center;color:#555;padding:2rem}.um-form{background:#111;border:1px solid #2a2a2a;border-radius:10px;margin:1rem 0;padding:1.2rem}.um-form label{color:#aaa;margin-bottom:.8rem;font-size:.85rem;display:block}.um-form input[type=email],.um-form input[type=text],.um-form input[type=date]{color:#e0e0e0;background:#1a1a1a;border:1px solid #333;border-radius:5px;width:100%;margin-top:.3rem;padding:.45rem .6rem;font-size:.9rem;display:block}.um-check{align-items:center;gap:.5rem;flex-direction:row!important;display:flex!important}.um-check input{width:auto!important;margin:0!important}.um-folders{margin:.8rem 0}.um-folders h4{color:#888;margin:0 0 .4rem;font-size:.8rem}.um-folder-row{background:#1a1a1a;border-radius:4px;align-items:center;gap:.5rem;margin-bottom:.3rem;padding:.25rem .5rem;font-size:.82rem;display:flex}.um-folder-row span{color:silver;flex:1}.um-folder-row button{color:#f87171;cursor:pointer;background:0 0;border:none;font-size:.9rem}.um-add-btn{color:#888;cursor:pointer;background:0 0;border:1px dashed #444;border-radius:4px;width:100%;padding:.3rem .6rem;font-size:.78rem}.um-add-btn:hover{color:#aaa;border-color:#666}.um-actions{gap:.6rem;margin-top:1rem;display:flex}.um-save{color:#fff;cursor:pointer;background:#ff7a00;border:none;border-radius:6px;padding:.5rem 1.2rem;font-weight:600}.um-cancel{color:#ccc;cursor:pointer;background:#333;border:none;border-radius:6px;padding:.5rem 1rem}.um-cli{background:#0a0a0a;border:1px solid #333;border-radius:6px;margin:.8rem 0;padding:.8rem}.um-cli h4{color:#888;margin:0 0 .4rem;font-size:.78rem}.um-cli pre{color:#4ade80;white-space:pre-wrap;word-break:break-all;margin:0;font-size:.75rem}.um-cli button{color:#ccc;cursor:pointer;background:#222;border:1px solid #444;border-radius:4px;margin-top:.5rem;padding:.3rem .6rem;font-size:.75rem}.um-updated{color:#444;margin-top:1.5rem;font-size:.72rem}@media (width<=767px){.um-row{grid-template-columns:1fr;gap:.2rem}.um-row-header{display:none}}
