*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#000;--surface:#121212;--surface-raised:#1c1c1e;--text:#fff;--text-secondary:#ababab;--text-muted:#6e6e6e;--accent:#fffc00;--radius:14px;--radius-sm:6px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}#screen-container{flex-direction:column;flex:1;min-height:0;display:flex}.screen{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow-y:auto}.onboarding{text-align:center;gap:16px;padding:40px 28px}.onboarding h1{letter-spacing:-.3px;font-size:26px;font-weight:700}.onboarding .subtitle{color:var(--text-secondary);max-width:280px;font-size:14px;line-height:1.55}.onboarding .hint{color:var(--text-muted);max-width:260px;font-size:12px;line-height:1.45}.btn{border-radius:var(--radius);letter-spacing:-.1px;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:6px;width:100%;max-width:280px;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .1s,opacity .15s;display:inline-flex}.btn:active{opacity:.85;transform:scale(.97)}.btn-primary{background:var(--accent);color:#000}.btn-secondary{background:var(--surface-raised);color:var(--text)}.btn-danger{color:#ff6b6b;background:#ff3b3026;border:1px solid #ff3b3040}.settings-backdrop{bottom:calc(38px + var(--safe-bottom))}.settings-sheet{-webkit-overflow-scrolling:touch;border-radius:16px;max-height:70dvh;margin:0 8px 8px;padding-bottom:20px;overflow-y:auto}.settings-group{background:var(--bg);text-align:left;border-radius:10px;width:100%;margin-bottom:4px;padding:12px 14px}.settings-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:600}.settings-row{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.settings-row+.settings-row{border-top:1px solid #ffffff0a}.settings-value{color:var(--text-muted);text-align:right;max-width:55%;font-size:12px}.settings-hint{color:var(--text-muted);margin-bottom:12px;font-size:12px;line-height:1.5}.settings-group .btn-danger{width:100%;max-width:100%}.settings-toggle{flex-shrink:0;width:42px;height:24px;position:relative}.settings-toggle input{opacity:0;width:0;height:0;position:absolute}.settings-toggle .toggle-track{cursor:pointer;background:#ffffff1f;border-radius:12px;transition:background .2s;position:absolute;inset:0}.settings-toggle input:checked+.toggle-track{background:var(--accent)}.settings-toggle .toggle-track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px}.settings-toggle input:checked+.toggle-track:after{transform:translate(18px)}.settings-row-label{flex-direction:column;gap:1px;min-width:0;display:flex}.settings-row-label small{color:var(--text-muted);font-size:11px;line-height:1.3}.import-overlay{z-index:90;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.import-screen{gap:14px}.import-screen h1{letter-spacing:-.3px;font-size:22px;font-weight:700}.import-screen .progress{color:var(--text-secondary);font-size:13px}.progress-bar-track{background:var(--surface-raised);border-radius:2px;width:100%;max-width:260px;height:3px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:2px;width:0%;height:100%;transition:width .2s ease-out}.quota-alert,.quota-warning{text-align:left;border-radius:10px;width:100%;max-width:300px;margin-bottom:4px;padding:12px 14px}.quota-alert{background:#ff3b3026;border:1px solid #ff3b304d}.quota-warning{background:#ffcc001a;border:1px solid #ffcc0040}.quota-alert-title{color:#ff6b6b;margin-bottom:4px;font-size:13px;font-weight:700}.quota-alert-body{color:var(--text-secondary);font-size:12px;line-height:1.5}.quota-alert-body strong{color:var(--text)}.integrity-overview{background:var(--surface-raised);border-radius:10px;width:100%;max-width:300px;padding:6px 0;overflow:hidden}.integrity-row{justify-content:space-between;align-items:center;padding:6px 14px;display:flex}.integrity-label{font-size:13px}.integrity-count{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.integrity-ok .integrity-label,.integrity-ok .integrity-count{color:var(--text-secondary)}.integrity-muted .integrity-label,.integrity-muted .integrity-count{color:var(--text-muted)}.integrity-warn .integrity-label,.integrity-warn .integrity-count{color:#e0a800}.integrity-error .integrity-label,.integrity-error .integrity-count{color:#ff6b6b}.skipped-section{text-align:left;background:var(--surface-raised);border-radius:10px;width:100%;max-width:300px;padding:12px 14px}.skipped-summary{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600}.skipped-hint{color:var(--text-muted);margin-bottom:6px;font-size:11px;line-height:1.45}.skipped-details{text-align:left;width:100%;max-width:300px;margin:6px 0 0}.skipped-details summary{color:var(--text-muted);cursor:pointer;padding:4px 0;font-size:12px}.skipped-details ul{max-height:100px;color:var(--text-muted);margin-top:4px;padding-left:18px;font-size:11px;overflow-y:auto}.skipped-details li{word-break:break-all;margin-bottom:2px}.timeline{scroll-behavior:smooth;justify-content:flex-start;padding:0;overflow-y:auto}.timeline-header{z-index:10;background:var(--bg);width:100%;padding:calc(12px + var(--safe-top)) 16px 10px;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.timeline-title{letter-spacing:-.3px;font-size:18px;font-weight:700}.timeline-actions{align-items:center;gap:6px;display:flex}.header-icon-btn{color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.header-icon-btn:active{opacity:.6}.search-bar{align-items:center;gap:6px;width:100%;padding:0 12px 8px;display:flex}.search-input{background:var(--surface-raised);color:var(--text);-webkit-appearance:none;border:none;border-radius:10px;outline:none;flex:1;padding:9px 12px;font-size:16px}.search-input::placeholder{color:var(--text-muted)}.search-clear{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:4px 6px;font-size:14px}.search-clear.hidden{visibility:hidden}.search-empty{text-align:center;color:var(--text-muted);padding:60px 24px;font-size:14px}.timeline-header .import-btn{max-width:unset;background:var(--surface-raised);width:auto;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:600;transition:transform .1s,opacity .15s}.timeline-header .import-btn:active{opacity:.8;transform:scale(.95)}.date-group{content-visibility:auto;contain-intrinsic-block-size:auto 300px;width:100%}.date-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:14px 14px 6px;font-size:11px;font-weight:600}.thumb-grid{grid-template-columns:repeat(3,1fr);gap:1.5px;padding:0 1.5px;display:grid}.thumb-cell{aspect-ratio:9/16;background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s,opacity .1s;position:relative;overflow:hidden}.thumb-cell:active{opacity:.85;transform:scale(.96)}.thumb-cell img,.thumb-cell video,.thumb-cell canvas{object-fit:cover;width:100%;height:100%;display:block}.thumb-placeholder{color:#ffffff40;justify-content:center;align-items:center;font-size:24px;display:flex;position:absolute;inset:0}.thumb-cell .video-badge{-webkit-backdrop-filter:blur(4px);color:var(--text);background:#0000008c;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600;line-height:1;position:absolute;bottom:6px;left:6px}.month-indicator{z-index:20;-webkit-backdrop-filter:blur(12px);color:#fff;letter-spacing:.4px;text-transform:uppercase;pointer-events:none;opacity:0;white-space:nowrap;background:#1e1e22eb;border:1px solid #ffffff14;border-radius:10px;padding:7px 12px;font-size:11px;font-weight:700;transition:opacity .2s,transform .2s;position:fixed;top:50%;right:10px;transform:translateY(-50%)scale(.9);box-shadow:0 2px 12px #0006}.month-indicator.visible{opacity:1;transform:translateY(-50%)scale(1)}.import-sheet-backdrop{z-index:50;background:0 0;justify-content:center;align-items:flex-end;transition:background .25s;display:flex;position:fixed;inset:0}.import-sheet-backdrop.open{background:#00000080}.import-sheet{background:var(--surface-raised);width:100%;max-width:400px;padding:12px 24px calc(24px + var(--safe-bottom));border-radius:16px 16px 0 0;flex-direction:column;align-items:center;gap:10px;transition:transform .25s;display:flex;transform:translateY(100%)}.import-sheet-backdrop.open .import-sheet{transform:translateY(0)}.import-sheet-backdrop.settings-backdrop{z-index:25}.import-sheet-handle{background:var(--text-muted);border-radius:2px;width:36px;height:4px;margin-bottom:4px}.import-sheet h2{letter-spacing:-.2px;font-size:17px;font-weight:700}.import-sheet p{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.import-sheet .btn{max-width:100%}.import-sheet #sheet-cancel{color:var(--text-muted);background:0 0;margin-top:2px;font-size:14px}.tab-bar{background:var(--surface);width:100%;padding:4px 0 var(--safe-bottom);z-index:30;border-top:1px solid #ffffff0f;flex-shrink:0;display:flex}.tab-bar button{color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0 2px;font-size:10px;font-weight:600;transition:color .15s;display:flex}.tab-bar button.active{color:var(--text)}.tab-bar .tab-icon{width:20px;height:20px}.home{justify-content:flex-start;align-items:stretch;padding:0;overflow-y:auto}.home-header{z-index:10;background:var(--bg);padding:calc(12px + var(--safe-top)) 16px 10px;align-items:center;display:flex;position:sticky;top:0}.home-title-wrap{align-items:center;gap:10px;display:inline-flex}.home-logo{object-fit:contain;filter:drop-shadow(0 0 10px #8a72ff2e);width:28px;height:28px;display:block}.home-title{letter-spacing:-.3px;font-size:18px;font-weight:700}.home-section{padding:0 0 12px}.home-section-header{justify-content:space-between;align-items:baseline;padding:16px 16px 8px;display:flex}.home-section-title{letter-spacing:-.2px;font-size:15px;font-weight:700}.home-section-sub{color:var(--text-muted);margin-left:8px;font-size:11px}.home-action-btn{color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:600;transition:opacity .15s}.home-action-btn:active{opacity:.6}.home-row{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding:0 16px;display:flex;overflow-x:auto}.home-row::-webkit-scrollbar{display:none}.home-card{aspect-ratio:9/16;scroll-snap-align:start;border-radius:10px;flex:0 0 120px;position:relative}.home-card-label{color:var(--text);text-shadow:0 1px 3px #000000b3;font-size:9px;font-weight:600;line-height:1.2;position:absolute;bottom:6px;left:6px;right:6px}.fb-row{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:12px;padding:0 16px 4px;display:flex;overflow-x:auto}.fb-row::-webkit-scrollbar{display:none}.fb-card{aspect-ratio:3/4;border-radius:var(--radius);background:var(--surface);scroll-snap-align:start;flex:0 0 72%;max-width:300px;position:relative;overflow:hidden}.fb-track{z-index:1;width:100%;height:100%;transition:transform .3s;display:flex}.fb-slide{aspect-ratio:auto;border-radius:0;flex:0 0 100%;width:100%;height:100%;transition:none;position:static}.fb-slide:active{opacity:1;transform:none}.fb-overlay{z-index:2;pointer-events:none;background:linear-gradient(#0000,#000000bf);flex-direction:column;gap:2px;padding:32px 14px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.fb-label{color:var(--text);text-shadow:0 1px 4px #00000080;font-size:15px;font-weight:700}.fb-count{color:var(--text-secondary);text-shadow:0 1px 4px #00000080;font-size:11px;font-weight:500}.fb-dots{z-index:2;pointer-events:none;gap:4px;display:flex;position:absolute;top:10px;left:12px;right:12px}.fb-dot{background:#fff3;border-radius:1.5px;flex:1;height:3px;position:relative;overflow:hidden}.fb-dot-fill{transform-origin:0;background:#ffffffe6;border-radius:1.5px;transition:none;position:absolute;inset:0;transform:scaleX(0)}.fb-dot.done .fb-dot-fill{transition:none;transform:scaleX(1)}.fb-dot.active .fb-dot-fill{transition:transform var(--fb-fill-duration,4s) linear;transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.fb-dot.active .fb-dot-fill{transition:none;transform:scaleX(1)}}.home-grid{grid-template-columns:repeat(3,1fr);gap:1.5px;padding:0 1.5px;display:grid}.empty-state{text-align:center;width:100%;padding:80px 24px}.empty-state p{color:var(--text-muted);margin-bottom:20px;font-size:14px;line-height:1.5}.viewer{z-index:100;background:var(--bg);opacity:0;will-change:opacity, transform;flex-direction:column;transition:opacity .2s,transform .2s;display:flex;position:fixed;inset:0;transform:scale(.95)}.viewer.viewer-enter{opacity:1;transform:scale(1)}.viewer.viewer-exit{opacity:0;transition:opacity .18s,transform .18s;transform:scale(.95)}.viewer-media{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewer-base,.viewer-overlay{transition:opacity .2s,transform .2s}.viewer-base{object-fit:contain;z-index:1;width:100%;height:100%;transition:opacity .15s;position:relative}.viewer-overlay{object-fit:contain;pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.viewer-media.slide-next .viewer-base,.viewer-media.slide-next .viewer-overlay{animation:.22s both slideFromRight}.viewer-media.slide-prev .viewer-base,.viewer-media.slide-prev .viewer-overlay{animation:.22s both slideFromLeft}@keyframes slideFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}.viewer-meta{padding:24px 20px calc(14px + var(--safe-bottom));z-index:101;background:linear-gradient(#0000,#000000bf);animation:.25s .1s both metaFadeIn;position:absolute;bottom:0;left:0;right:0}@keyframes metaFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.viewer-date{letter-spacing:-.1px;font-size:14px;font-weight:600}.viewer-location{color:var(--text-secondary);margin-top:3px;font-size:12px}.viewer-counter{color:var(--text-muted);margin-top:4px;font-size:11px}.viewer-nav button{z-index:102;color:#ffffffb3;border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff14;border:none;width:36px;height:56px;font-size:28px;transition:background .15s,opacity .15s;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav button:active{background:#ffffff2e}.viewer-prev{left:6px}.viewer-next{right:6px}.viewer-error{color:var(--text-muted);font-size:13px}.viewer-loading{color:var(--text-muted);z-index:0;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.hidden{display:none!important}.pwa-hint{z-index:40;padding:0 12px calc(12px + var(--safe-bottom));pointer-events:none;transition:transform .3s;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.pwa-hint.visible{pointer-events:auto;transform:translateY(0)}.pwa-hint-content{background:var(--surface-raised);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;box-shadow:0 -2px 20px #0006}.pwa-hint-text{flex:1;min-width:0}.pwa-hint-text strong{margin-bottom:4px;font-size:14px;display:block}.pwa-hint-text p{color:var(--text-secondary);margin-bottom:4px;font-size:12px;line-height:1.45}.pwa-hint-steps{color:var(--text-muted)!important;font-size:11px!important}.pwa-hint-icon{vertical-align:middle;font-size:14px;display:inline-block}.pwa-hint-close{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:16px}
