:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172033;font-synthesis:none;--accent:#1768e5;--accent-soft:#dceaff;--text:#172033;--muted:#68758a;--line:#dce2ea;--rail:#f6f8fb;--control:#fff;--surface:#fff;--surface-raised:#fff;--surface-hover:#f2f5f9;--topbar:#fffffffa;--danger:#b3261e;--danger-fill:#c43d35;background:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e7ecf3;--accent:#6ea8ff;--accent-soft:#1b3659;--text:#e7ecf3;--muted:#9aa8ba;--line:#303a48;--rail:#141b24;--control:#1a222d;--surface:#10161e;--surface-raised:#1a222d;--surface-hover:#242e3b;--topbar:#10161efa;--danger:#ff9a93;--danger-fill:#c94a45;background:#0f141b}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{background:0 0;border:0}button,a,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:var(--surface);grid-template:60px minmax(0,1fr) 44px/276px minmax(0,1fr);width:100%;height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--topbar);z-index:30;grid-column:1/-1;grid-template-columns:276px minmax(260px,1fr) auto;align-items:center;height:60px;display:grid}.brand{letter-spacing:-.5px;border-right:1px solid var(--line);cursor:pointer;text-align:left;align-items:center;height:60px;padding:0 22px;font-size:24px;font-weight:730;display:flex}.brand img{object-fit:cover;border-radius:9px;width:44px;height:44px;display:block}.search-wrap{min-width:220px;margin:0 24px;position:relative}.search-wrap input{background:#fff;border:1px solid #cfd6e0;border-radius:7px;width:100%;height:38px;padding:0 40px;font-size:14px;transition:border-color .15s,box-shadow .15s}.search-wrap input:focus{border-color:#8db7f6;outline:0;box-shadow:0 0 0 3px #e3efff}.search-icon{color:#5e6a7d;pointer-events:none;width:18px;height:18px;position:absolute;top:10px;left:13px}.search-results{border:1px solid var(--line);z-index:70;background:#fff;border-radius:8px;max-height:430px;padding:5px;position:absolute;top:44px;left:0;right:0;overflow:auto;box-shadow:0 12px 32px #1d283a24}.search-results button{text-align:left;cursor:pointer;border-radius:5px;align-items:center;gap:10px;width:100%;padding:7px;display:flex}.search-results button:hover{background:#f3f6fa}.search-results img,.search-result-icon{background:var(--surface-hover);border-radius:4px;flex:none;width:48px;height:40px}.search-results img{object-fit:cover}.search-result-icon{color:var(--muted);place-items:center;display:grid}.search-result-icon svg{width:21px}.search-results span{flex-direction:column;gap:3px;min-width:0;display:flex}.search-results strong,.search-results small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.search-results strong{font-size:13px}.search-results small{color:var(--muted);font-size:11px}.search-message{color:var(--muted);padding:14px;font-size:13px}.top-actions{align-items:center;gap:8px;padding-right:20px;display:flex}.control,.sort-control{background:var(--control);color:#253044;cursor:pointer;border:1px solid #d3dae4;border-radius:7px;justify-content:center;align-items:center;height:38px;font-size:13px;display:inline-flex}.control{gap:8px;padding:0 12px}.control:hover,.sort-control:hover{background:#f8fafc}.control.active{color:var(--accent);background:#eef5ff;border-color:#9dc2f8}.control svg{width:18px;height:18px}.sort-control{overflow:hidden}.sort-control>button{cursor:pointer;border-right:1px solid #e0e5ec;place-items:center;width:38px;height:100%;display:grid}.sort-control>button svg{width:18px;height:18px}.sort-select{height:100%;position:relative;overflow:hidden}.sort-select select{appearance:none;cursor:pointer;background:0 0;border:0;outline:0;height:100%;padding:0 34px 0 12px}.sort-select:after{content:"⌄";pointer-events:none;color:#566277;position:absolute;top:8px;right:12px}.avatar{color:#fff;background:#344357;border-radius:50%;place-items:center;width:34px;height:34px;margin-left:8px;font-size:13px;font-weight:650;text-decoration:none;display:grid}.theme-toggle{border:1px solid var(--line);color:var(--muted);background:var(--control);border-radius:7px}.theme-toggle:hover{color:var(--text);background:var(--surface-hover)}.icon-button{cursor:pointer;place-items:center;width:38px;height:38px;display:grid}.icon-button svg{width:21px}.mobile-menu{display:none}.sidebar{background:var(--rail);border-right:1px solid var(--line);flex-direction:column;grid-area:2/1;display:flex;overflow:hidden}.folder-tree{flex:1;padding:14px 10px;overflow:auto}.folder-row{color:#293549;border-radius:5px;align-items:center;height:38px;display:flex;position:relative}.folder-row.selected{background:var(--accent-soft);color:#0747a6}.folder-row:hover:not(.selected){background:#edf1f6}.folder-chevron{cursor:pointer;color:#667387;flex:0 0 24px;place-items:center;height:30px;display:grid}.folder-chevron svg{width:14px;height:14px;transition:transform .14s}.folder-chevron svg.expanded{transform:rotate(90deg)}.folder-main{cursor:pointer;text-align:left;flex:1;grid-template-columns:19px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;height:100%;font-size:14px;display:grid}.folder-main svg{width:19px;height:19px}.folder-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-main small{color:#728095;font-variant-numeric:tabular-nums;padding-right:5px;font-size:12px}.folder-row.selected small{color:#1457b4}.folder-more{cursor:pointer;place-items:center;width:26px;height:30px;display:none}.folder-row:hover .folder-more,.folder-row:focus-within .folder-more{display:grid}.folder-more svg{width:17px}.reorder-handle{color:#94a0b0;cursor:grab;opacity:0;text-align:center;width:22px;font-size:15px;line-height:1}.folder-row:hover .reorder-handle{opacity:1}.reorder-handle:active{cursor:grabbing}.folder-menu{border:1px solid var(--line);z-index:50;background:#fff;border-radius:7px;width:160px;padding:5px;position:absolute;top:34px;right:4px;box-shadow:0 10px 26px #1c273824}.folder-menu button{text-align:left;cursor:pointer;border-radius:4px;width:100%;padding:8px 9px;font-size:12px}.folder-menu button:hover{background:#f2f5f9}.folder-menu .danger{color:#b3261e}.create-folder{cursor:pointer;border-radius:5px;align-items:center;gap:12px;height:38px;margin:4px 12px 20px;padding:0 8px;font-size:14px;display:flex}.create-folder:hover{background:#eaf0f7}.create-folder svg{width:19px}.trash-link{cursor:pointer;border-radius:5px;align-items:center;gap:12px;height:38px;margin:-12px 12px 14px;padding:0 8px;font-size:14px;display:flex}.trash-link:hover{background:#eaf0f7}.trash-link span{width:19px;font-size:18px}.workspace{background:var(--surface);grid-area:2/2;grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid;position:relative;overflow:hidden}.main-screen{background:radial-gradient(circle at 90% 2%, #1768e51c, transparent 34%), var(--surface);grid-row:1/-1;min-height:0;padding:clamp(28px,5vw,64px);overflow:auto}.main-screen-header{max-width:720px}.main-screen-header>span{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:760;display:block}.main-screen-header h1{color:var(--text);letter-spacing:-.055em;margin:0;font-size:clamp(34px,5vw,52px);line-height:1}.main-screen-header p{color:var(--muted);margin:15px 0 0;font-size:15px}.memories-section{width:min(100%,1180px);margin-top:clamp(42px,7vh,74px)}.memories-heading{justify-content:space-between;align-items:end;margin-bottom:18px;display:flex}.memories-heading h2{color:var(--text);letter-spacing:-.035em;margin:0;font-size:clamp(22px,3vw,30px)}.memories-heading p{color:var(--muted);margin:7px 0 0;font-size:13px}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.5vw,18px);display:grid}.memory-card{aspect-ratio:4/3;border:1px solid var(--line);background:var(--surface-raised);cursor:pointer;border-radius:14px;min-width:0;position:relative;overflow:hidden;box-shadow:0 14px 34px #1a2a4317}.memory-card img{object-fit:cover;width:100%;height:100%;transition:transform .32s;display:block}.memory-card:hover img{transform:scale(1.025)}.memory-card span{color:#fff;text-align:left;background:linear-gradient(#0000,#040a12d1);gap:3px;padding:38px 15px 14px;display:grid;position:absolute;inset:auto 0 0}.memory-card strong{letter-spacing:-.02em;font-size:20px}.memory-card small{color:#ffffffc7;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.memory-skeleton span{aspect-ratio:4/3;background:linear-gradient(100deg,#edf1f5 30%,#f7f9fb 50%,#edf1f5 70%) 0 0/300% 100%;border-radius:14px;animation:1.5s linear infinite shimmer}.memory-empty{border:1px dashed var(--line);min-height:250px;color:var(--muted);text-align:center;background:color-mix(in srgb, var(--surface-raised) 76%, transparent);border-radius:14px;place-content:center;justify-items:center;padding:38px;display:grid}.memory-empty svg{width:34px;height:34px;color:var(--accent)}.memory-empty h3{color:var(--text);margin:16px 0 5px;font-size:18px}.memory-empty p{margin:0;font-size:13px}.memory-empty button{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));color:var(--accent);cursor:pointer;border-radius:7px;margin-top:16px;padding:8px 13px}.gallery-header{border-bottom:1px solid #eef1f5;justify-content:space-between;align-items:end;gap:20px;padding:10px 22px 11px;display:flex}.breadcrumb{color:#67758a;margin-bottom:7px;font-size:12px}.breadcrumb span:last-child{color:#2a3548}.gallery-header h1{letter-spacing:-.45px;margin:0;font-size:25px;font-weight:720;line-height:1.08}.gallery-header p{color:#718096;margin:4px 0 0;font-size:13px}.gallery-actions{align-items:center;gap:10px;padding-bottom:2px;display:flex}.danger-control{color:#a42921}.density-control{width:38px;height:38px;color:var(--accent);cursor:pointer;background:#eaf3ff;border:1px solid #9dc2f8;border-radius:6px;place-items:center;display:grid}.density-control svg{width:18px}.filters-panel{z-index:25;border:1px solid var(--line);background:#fff;border-radius:8px;width:286px;padding:16px;position:absolute;top:78px;right:18px;box-shadow:0 14px 38px #1c283a29}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-heading strong{font-size:16px}.panel-heading button{color:var(--accent);cursor:pointer;font-size:13px}.filters-panel label{color:#5d6a7c;gap:7px;margin:12px 0;font-size:12px;display:grid}.filters-panel select{background:#fff;border:1px solid #d4dae3;border-radius:6px;height:36px;padding:0 9px;font-size:13px}.filters-panel p{color:#7b8798;margin:15px 0 0;font-size:11px;line-height:1.45}.photo-scroll{scrollbar-width:thin;min-height:0;padding:5px 7px 18px 12px;overflow:auto}.photo-canvas{width:100%}.photo-tile{cursor:default;-webkit-user-select:none;user-select:none;background:#edf1f5;border-radius:5px;outline:0;overflow:hidden}.photo-tile:after{content:"";border:0 solid var(--accent);border-radius:inherit;pointer-events:none;transition:border-width .12s;position:absolute;inset:0}.photo-tile.photo-selected:after{border-width:3px}.photo-tile img{object-fit:cover;width:100%;height:100%;transition:transform .22s;display:block}.photo-tile:hover img{transform:scale(1.015)}.photo-overlay{color:#fff;opacity:0;background:linear-gradient(#0000,#070c14b8);justify-content:space-between;align-items:end;min-height:49px;padding:20px 9px 7px;transition:opacity .15s;display:flex;position:absolute;inset:auto 0 0}.photo-tile:hover .photo-overlay,.photo-tile:focus .photo-overlay{opacity:1}.photo-overlay span{gap:2px;min-width:0;display:grid}.photo-overlay strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.photo-overlay small{color:#ffffffc2;font-size:10px}.favorite{color:#fff;cursor:pointer;place-items:center;width:28px;height:28px;display:grid}.favorite svg{width:18px}.favorite.active{color:#fff}.selection-check{color:#fff;background:var(--accent);border-radius:4px;place-items:center;width:20px;height:20px;font-size:12px;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 1px 4px #0003}.grid-loading{color:var(--muted);text-align:center;padding:14px;font-size:12px}.skeleton-grid{grid-template-columns:repeat(5,1fr);grid-auto-rows:170px;gap:5px;padding:6px 12px;display:grid;overflow:hidden}.skeleton-grid span{background:linear-gradient(100deg,#edf1f5 30%,#f7f9fb 50%,#edf1f5 70%) 0 0/300% 100%;border-radius:5px;animation:1.5s linear infinite shimmer}.skeleton-grid span:nth-child(3n){grid-row:span 2}.skeleton-grid span:nth-child(4n){height:130px}@keyframes shimmer{to{background-position:-150% 0}}.empty-gallery{text-align:center;height:100%;color:var(--muted);place-content:center;justify-items:center;padding:28px;display:grid}.empty-gallery h2{color:#263247;margin:15px 0 4px;font-size:18px}.empty-gallery p{max-width:440px;margin:0;font-size:13px;line-height:1.5}.empty-frame{color:#8794a7;border:1px solid #dce3eb;border-radius:9px;place-items:center;width:56px;height:56px;display:grid}.empty-frame svg{width:25px}.error-empty button{color:var(--accent);cursor:pointer;border:1px solid #a9c9f9;border-radius:6px;margin-top:14px;padding:8px 13px}.statusbar{border-top:1px solid var(--line);color:#657287;z-index:26;background:#fbfcfd;grid-area:3/1/auto/-1;justify-content:space-between;align-items:center;height:44px;padding:0 18px;font-size:12px;display:flex;position:relative}.indexing-status{align-items:center;height:100%;display:flex;position:relative}.indexing-trigger{color:#4c596b;cursor:pointer;font:inherit;align-items:center;gap:8px;display:flex}.indexing-trigger i{background:#2cad5b;border-radius:50%;flex:none;width:8px;height:8px}.indexing-trigger.running i{background:var(--accent);animation:1.35s ease-in-out infinite indexing-pulse;box-shadow:0 0 0 4px #1b6fef1f}.indexing-trigger.error i{background:#d84a4a}.indexing-trigger .indexing-chevron{width:14px;height:14px;transform:rotate(-90deg)}.indexing-popover{width:368px;color:var(--ink);z-index:40;background:#fff;border:1px solid #dbe2ea;border-radius:9px;padding:17px;position:absolute;bottom:38px;right:-5px;box-shadow:0 18px 46px #1c2a3d2b,0 3px 10px #1c2a3d14}.indexing-popover:after{content:"";background:#fff;border-bottom:1px solid #dbe2ea;border-right:1px solid #dbe2ea;width:9px;height:9px;position:absolute;bottom:-5px;right:25px;transform:rotate(45deg)}.indexing-popover header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.indexing-popover header>div{gap:3px;min-width:0;display:grid}.indexing-popover header strong{font-size:14px;line-height:1.3}.indexing-popover header span{color:var(--muted);font-size:11px;line-height:1.4}.indexing-refresh{border:1px solid var(--line);color:#445166;cursor:pointer;border-radius:6px;align-items:center;gap:6px;min-width:max-content;padding:6px 8px;font-size:11px;font-weight:600;display:flex}.indexing-refresh:disabled{cursor:default;opacity:.58}.indexing-refresh svg{width:14px;height:14px}.indexing-activity{background:#e8effa;border-radius:999px;height:3px;margin:15px 0 2px;overflow:hidden}.indexing-activity span{border-radius:inherit;background:var(--accent);width:34%;height:100%;animation:1.25s ease-in-out infinite indexing-travel;display:block}.indexing-totals{border-block:1px solid #e7ebf0;grid-template-columns:repeat(3,1fr);margin:15px 0;display:grid}.indexing-totals>div{text-align:center;gap:3px;padding:12px 10px;display:grid}.indexing-totals>div+div{border-left:1px solid #e7ebf0}.indexing-totals strong{color:#202b3d;font-variant-numeric:tabular-nums;font-size:17px;line-height:1}.indexing-totals span{color:var(--muted);font-size:10px}.indexing-breakdown{grid-template-columns:1fr 1fr;gap:9px 18px;margin:0;display:grid}.indexing-breakdown>div{justify-content:space-between;gap:8px;display:flex}.indexing-breakdown dt{color:var(--muted)}.indexing-breakdown dd{color:#303c4f;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.indexing-path,.indexing-error{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-top:1px solid #edf0f4;margin:14px 0 0;padding-top:11px;overflow:hidden}.indexing-path span{color:#3d4a5e}.indexing-error{color:#b43e3e;white-space:normal}@keyframes indexing-pulse{50%{opacity:.55}}@keyframes indexing-travel{0%{transform:translate(-110%)}to{transform:translate(310%)}}.viewer-backdrop{z-index:100;background:#1e2733b8;position:fixed;inset:0}.viewer{color:#e9edf4;background:#141a22;grid-template:80px minmax(0,1fr) 150px/minmax(0,1fr);width:100%;height:100%;display:grid;position:relative;overflow:hidden}.viewer.details-open{grid-template-columns:minmax(0,1fr) 302px}.viewer-toolbar{border-bottom:1px solid #303946;grid-column:1/-1;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 20px;display:grid}.viewer-filename{color:#dfe5ee;grid-column:2;font-size:14px}.viewer-actions{justify-self:end;align-items:center;gap:10px;display:flex;position:relative}.viewer-menu{z-index:5;background:#1c2430;border:1px solid #3a4656;border-radius:7px;width:170px;padding:5px;position:absolute;top:50px;right:0;box-shadow:0 12px 30px #0000004d}.viewer-menu button{color:#e9eef5;text-align:left;cursor:pointer;border-radius:4px;width:100%;padding:9px 10px;font-size:12px}.viewer-menu button:hover{background:#283342}.viewer-menu button.danger{color:#ffaaa3}.viewer-button{color:#edf2f8;cursor:pointer;background:#151c25;border:1px solid #3a4656;border-radius:6px;place-items:center;width:42px;height:42px;font-size:22px;text-decoration:none;display:grid}.viewer-button svg{width:20px;height:20px}.viewer-button.active{color:#74aaf8}.viewer-button.focus-example:focus-visible{outline-color:#2d84ff}.zoom-value{text-align:center;min-width:43px;font-size:13px}.viewer-stage{touch-action:none;background:#111720;grid-area:2/1;place-items:center;display:grid;position:relative;overflow:hidden}.viewer-stage.pannable{cursor:grab}.viewer-stage.pannable:active{cursor:grabbing}.viewer-stage>img{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;pointer-events:none;width:calc(100% - 40px);height:calc(100% - 20px);transition:transform 80ms linear;display:block;position:absolute;inset:10px 20px}.viewer-error{z-index:6;color:#ffd5d1;background:#3a2324;border:1px solid #78443f;border-radius:6px;max-width:280px;padding:9px 12px;font-size:12px;position:absolute;top:70px;right:16px}.viewer-confirm-backdrop{z-index:10;background:#05090eb8;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.viewer-confirm{color:#edf2f8;background:#1b232e;border:1px solid #3a4656;border-radius:9px;width:min(400px,100%);padding:24px;box-shadow:0 24px 70px #00000080}.viewer-confirm h2{margin:0;font-size:20px;font-weight:600}.viewer-confirm p{color:#aeb8c8;margin:9px 0 0;font-size:13px;line-height:1.5}.viewer-confirm-error{color:#ffaaa3;margin-top:14px;font-size:12px}.viewer-confirm-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.viewer-confirm-actions button{color:#edf2f8;cursor:pointer;border-radius:6px;height:38px;padding:0 14px}.viewer-confirm-actions button:disabled{opacity:.6;cursor:wait}.viewer-confirm-actions .secondary{background:#202a36;border:1px solid #465365}.viewer-confirm-actions .danger{background:#c94a45}.viewer:fullscreen{border:0;border-radius:0;grid-template:64px minmax(0,1fr)/minmax(0,1fr);width:100vw;height:100vh}.viewer.details-open:fullscreen{grid-template-columns:minmax(0,1fr) 302px}.viewer:fullscreen .viewer-stage{grid-area:2/1}.viewer:fullscreen .viewer-footer{display:none}.viewer:fullscreen .viewer-details{grid-row:2}.viewer-nav{color:#fff;cursor:pointer;background:#0b10179e;border-radius:7px;place-items:center;width:48px;height:48px;margin-top:-24px;display:grid;position:absolute;top:50%}.viewer-nav:disabled{opacity:.25;cursor:default}.viewer-nav svg{width:24px}.viewer-nav.previous{left:18px;transform:rotate(180deg)}.viewer-nav.next{right:18px}.viewer-details{background:#171e27;border-left:1px solid #303946;grid-area:2/2/4;padding:20px 22px;overflow:auto}.viewer-details h2{margin:0 0 24px;font-size:19px;font-weight:590}.viewer-details dl{grid-template-columns:90px 1fr;gap:10px;margin:0 0 18px;font-size:12px;line-height:1.35;display:grid}.viewer-details dt{color:#aeb8c8}.viewer-details dd{color:#edf1f6;word-break:break-word;margin:0}.viewer-footer{border-top:1px solid #252e3a;grid-area:3/1;place-items:center;display:grid;position:relative}.filmstrip{align-items:center;gap:7px;height:100%;display:flex}.filmstrip button{cursor:pointer;background:#252e39;border:2px solid #0000;border-radius:5px;width:118px;height:84px;padding:0;overflow:hidden}.filmstrip button.current{border-color:#2b84ff;box-shadow:0 0 0 2px #2b84ff3d}.filmstrip img{object-fit:cover;width:100%;height:100%;display:block}.shortcuts{color:#c9d1dc;align-items:center;gap:7px;font-size:11px;display:flex;position:absolute;bottom:18px;left:24px}.shortcuts span{color:#9ba7b7;margin-right:7px}.shortcuts kbd{border:1px solid #4a5666;border-radius:5px;place-items:center;min-width:28px;height:27px;font-family:inherit;font-size:11px;display:grid}.dialog-backdrop{z-index:120;background:#1e273375;place-items:center;display:grid;position:fixed;inset:0}.action-dialog{border:1px solid var(--line);width:min(420px,100% - 32px);color:var(--text);background:var(--surface-raised);border-radius:9px;padding:22px;box-shadow:0 24px 70px #0e172442}.action-dialog h2{margin:0;font-size:20px}.action-dialog p{color:var(--muted);margin:8px 0 18px;font-size:13px;line-height:1.45}.action-dialog label{color:#596578;gap:7px;font-size:12px;display:grid}.action-dialog input{border:1px solid #cfd6df;border-radius:6px;height:40px;padding:0 11px}.action-dialog>div{justify-content:end;gap:8px;margin-top:20px;display:flex}.action-dialog button{cursor:pointer;border-radius:6px;height:38px;padding:0 14px}.action-dialog .secondary{border:1px solid #d3dae3}.action-dialog .primary{color:#fff;background:var(--accent)}.confirm-dialog{border:1px solid var(--line);width:min(440px,100% - 32px);color:var(--text);background:var(--surface-raised);border-radius:10px;padding:24px;box-shadow:0 24px 70px #0e17244d}.confirm-dialog h2{letter-spacing:-.2px;margin:0;font-size:20px}.confirm-dialog p{color:var(--muted);margin:9px 0 0;font-size:13px;line-height:1.5}.confirm-dialog-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.confirm-dialog button{cursor:pointer;border-radius:7px;min-width:92px;height:39px;padding:0 14px;font-weight:600}.confirm-dialog button:disabled{cursor:wait;opacity:.62}.confirm-dialog .secondary{border:1px solid var(--line);background:var(--control)}.confirm-dialog .primary{color:#fff;background:var(--accent)}.confirm-dialog .danger{color:#fff;background:var(--danger-fill)}.move-folder-dialog{border:1px solid var(--line);width:min(520px,100% - 32px);max-height:calc(100vh - 32px);color:var(--text);background:var(--surface-raised);border-radius:10px;grid-template-rows:auto auto minmax(120px,1fr) auto;gap:18px;padding:24px;display:grid;box-shadow:0 24px 70px #0e17244d}.move-folder-dialog h2{letter-spacing:-.2px;margin:0;font-size:20px}.move-folder-dialog header p{color:var(--muted);margin:7px 0 0;font-size:13px}.move-folder-search{color:var(--muted);gap:7px;font-size:12px;display:grid}.move-folder-search input{border:1px solid var(--line);height:40px;color:var(--text);background:var(--control);border-radius:6px;padding:0 11px}.move-folder-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2b84ff24}.move-folder-options{border:1px solid var(--line);background:var(--surface);border-radius:7px;min-height:120px;max-height:min(42vh,360px);padding:5px;overflow-y:auto}.move-folder-option{cursor:pointer;border-radius:5px;grid-template-columns:18px 20px minmax(0,1fr);align-items:center;gap:9px;min-height:49px;padding:7px 9px;display:grid}.move-folder-option:hover{background:var(--surface-hover)}.move-folder-option.selected{background:var(--accent-soft)}.move-folder-option input{accent-color:var(--accent);margin:0}.move-folder-option>svg{width:18px;color:var(--muted)}.move-folder-option>span{min-width:0;display:grid}.move-folder-option strong,.move-folder-option small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.move-folder-option strong{font-size:13px;font-weight:600}.move-folder-option small{color:var(--muted);margin-top:2px;font-size:11px}.move-folder-empty{min-height:108px;color:var(--muted);place-items:center;margin:0;font-size:13px;display:grid}.move-folder-actions{justify-content:flex-end;gap:9px;display:flex}.move-folder-actions button{cursor:pointer;border-radius:7px;min-width:92px;height:39px;padding:0 14px;font-weight:600}.move-folder-actions button:disabled{cursor:not-allowed;opacity:.58}.move-folder-actions .secondary{border:1px solid var(--line);color:var(--text);background:var(--control)}.move-folder-actions .primary{color:#fff;background:var(--accent)}.toast{z-index:150;color:#fff;background:#1c2634;border-radius:7px;max-width:min(540px,100% - 32px);padding:10px 14px;font-size:12px;position:fixed;bottom:60px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #141d2b38}.trash-panel{z-index:20;background:var(--surface);grid-template-rows:auto minmax(0,1fr);display:grid;position:absolute;inset:0}.trash-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:90px;padding:14px 22px;display:flex}.trash-panel h1{margin:0;font-size:25px}.trash-panel p{color:var(--muted);margin:5px 0 0;font-size:12px}.trash-empty{text-align:center;color:var(--muted);place-content:center;justify-items:center;display:grid}.trash-empty h2{color:var(--text);margin:14px 0 4px;font-size:18px}.trash-list{padding:12px 22px;overflow:auto}.trash-list article{border-bottom:1px solid #e9edf2;grid-template-columns:24px minmax(180px,1fr) 130px auto auto;align-items:center;gap:14px;min-height:58px;display:grid}.trash-list article>svg{color:#69778a;width:20px}.trash-list article>div{gap:3px;min-width:0;display:grid}.trash-list strong,.trash-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trash-list strong{font-size:13px}.trash-list span,.trash-list time{color:var(--muted);font-size:11px}.trash-list button{cursor:pointer;border:1px solid #d4dbe4;border-radius:6px;height:34px;padding:0 10px;font-size:11px}.trash-list button.danger{color:#a42921}.app-loading{background:var(--surface);width:100%;height:100%;color:var(--muted);place-content:center;justify-items:center;gap:14px;font-size:13px;display:grid}.loading-mark{color:var(--text);letter-spacing:-.7px;font-size:28px;font-weight:750}.sidebar-scrim{display:none}[data-theme=dark] .search-wrap input,[data-theme=dark] .search-results,[data-theme=dark] .folder-menu,[data-theme=dark] .filters-panel,[data-theme=dark] .filters-panel select,[data-theme=dark] .indexing-popover,[data-theme=dark] .action-dialog input{color:var(--text);border-color:var(--line);background:var(--surface-raised)}[data-theme=dark] .search-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6ea8ff2e}[data-theme=dark] .search-icon,[data-theme=dark] .folder-chevron,[data-theme=dark] .folder-main small,[data-theme=dark] .breadcrumb,[data-theme=dark] .gallery-header p,[data-theme=dark] .filters-panel label,[data-theme=dark] .filters-panel p,[data-theme=dark] .statusbar,[data-theme=dark] .indexing-trigger,[data-theme=dark] .action-dialog label,[data-theme=dark] .trash-list article>svg{color:var(--muted)}[data-theme=dark] .search-results button:hover,[data-theme=dark] .folder-menu button:hover,[data-theme=dark] .folder-row:hover:not(.selected),[data-theme=dark] .create-folder:hover,[data-theme=dark] .trash-link:hover,[data-theme=dark] .control:hover,[data-theme=dark] .sort-control:hover{background:var(--surface-hover)}[data-theme=dark] .control,[data-theme=dark] .sort-control,[data-theme=dark] .indexing-refresh,[data-theme=dark] .trash-list button,[data-theme=dark] .action-dialog .secondary{color:var(--text);border-color:var(--line);background:var(--control)}[data-theme=dark] .sort-control>button,[data-theme=dark] .gallery-header,[data-theme=dark] .trash-list article{border-color:var(--line)}[data-theme=dark] .folder-row,[data-theme=dark] .breadcrumb span:last-child,[data-theme=dark] .empty-gallery h2,[data-theme=dark] .indexing-totals strong,[data-theme=dark] .indexing-breakdown dd,[data-theme=dark] .indexing-path span{color:var(--text)}[data-theme=dark] .folder-row.selected,[data-theme=dark] .folder-row.selected small{color:#a9ceff}[data-theme=dark] .density-control,[data-theme=dark] .control.active{color:var(--accent);background:var(--accent-soft);border-color:#4673a8}[data-theme=dark] .photo-tile,[data-theme=dark] .empty-frame{border-color:var(--line);background:#1a222d}[data-theme=dark] .skeleton-grid span,[data-theme=dark] .memory-skeleton span{background:linear-gradient(100deg,#1a222d 30%,#26313f 50%,#1a222d 70%) 0 0/300% 100%}[data-theme=dark] .memory-card{box-shadow:0 16px 38px #0000003d}[data-theme=dark] .statusbar{background:var(--rail)}[data-theme=dark] .indexing-popover:after{border-color:var(--line);background:var(--surface-raised)}[data-theme=dark] .indexing-totals,[data-theme=dark] .indexing-totals>div+div,[data-theme=dark] .indexing-path,[data-theme=dark] .indexing-error{border-color:var(--line)}[data-theme=dark] .indexing-activity{background:#26374d}[data-theme=dark] .dialog-backdrop{background:#02070cad}[data-theme=dark] .trash-list button.danger,[data-theme=dark] .danger-control,[data-theme=dark] .folder-menu .danger{color:var(--danger)}@media (width<=900px){.app-shell{grid-template-rows:58px minmax(0,1fr) 42px;grid-template-columns:1fr}.topbar{grid-template-columns:auto auto minmax(100px,1fr) auto;height:58px}.brand{border:0;height:58px;padding:0 8px}.brand img{border-radius:8px;width:40px;height:40px}.mobile-menu{margin-left:8px;display:grid}.search-wrap{margin:0 10px}.filters-button span,.sort-control{display:none}.top-actions{gap:4px;padding-right:8px}.avatar{display:none}.sidebar{z-index:80;width:min(310px,86vw);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%);box-shadow:10px 0 30px #141e2d2e}.sidebar.sidebar-open{transform:translate(0)}.sidebar-scrim{z-index:79;background:#19222e59;display:block;position:fixed;inset:0}.workspace{grid-column:1}.main-screen{padding:28px 22px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-card:last-child{aspect-ratio:2;grid-column:1/-1}.gallery-header{padding:10px 14px}.gallery-header h1{font-size:22px}.photo-scroll{padding-left:6px}.statusbar{grid-column:1}.viewer-backdrop{padding:0}.viewer{border:0;border-radius:0;grid-template:62px minmax(0,1fr) 100px/1fr}.viewer-toolbar{grid-template-columns:auto 1fr auto;padding:0 10px}.viewer-filename{text-overflow:ellipsis;white-space:nowrap;grid-column:2;padding-left:12px;overflow:hidden}.viewer-zoom-control,.zoom-value{display:none}.viewer-actions{gap:6px}.viewer-stage{grid-row:2}.viewer.details-open{grid-template-columns:1fr}.viewer-details{z-index:4;width:min(302px,86vw);position:absolute;top:62px;bottom:0;right:0;box-shadow:-14px 0 32px #03080f5c}.viewer-footer{grid-area:3/1;overflow:hidden}.filmstrip button{width:82px;height:64px}.shortcuts{display:none}}@media (width<=560px){.topbar{grid-template-columns:auto auto 1fr auto}.search-wrap{margin-left:4px}.filters-button{width:38px;padding:0}.gallery-header{align-items:center}.gallery-header .breadcrumb,.gallery-header p,.gallery-actions .density-control{display:none}.main-screen{padding:24px 16px}.main-screen-header h1{font-size:34px}.memories-section{margin-top:38px}.memory-grid{grid-template-columns:1fr}.memory-card,.memory-card:last-child{aspect-ratio:4/3;grid-column:auto}.statusbar>span{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;overflow:hidden}.indexing-trigger>span{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;overflow:hidden}.indexing-popover{width:auto;position:fixed;bottom:50px;left:10px;right:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
