@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Hind+Siliguri:wght@400;700&display=swap";:root{--bg:#f8fafc;--surface:#ffffffd9;--surface-solid:#fff;--surface-alt:#f1f5f9;--border:#e2e8f099;--border-focus:#3b82f6;--ink:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-gradient:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--accent-soft:#2563eb14;--glass:blur(12px);--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 12px 24px -6px #0000000a, 0 8px 10px -6px #0000000a;--shadow-lg:0 25px 50px -12px #0000001a;--radius-xl:32px;--radius-lg:20px;--radius-md:14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background-color:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Outfit,Hind Siliguri,sans-serif;overflow-x:hidden}.skeleton-pulse{background:var(--surface-alt);background:linear-gradient(90deg, var(--surface-alt) 25%, var(--border) 50%, var(--surface-alt) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.app-shell{background:var(--bg);flex-direction:column;max-width:500px;min-height:100vh;margin:0 auto;display:flex;position:relative;box-shadow:0 0 100px #0000000d}.app-header{background:var(--surface);-webkit-backdrop-filter:var(--glass);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:24px 20px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:16px;display:flex}.back-button{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.back-button:active{background:var(--surface-alt);transform:scale(.9)}.app-brand{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:800}.app-subtitle{color:var(--muted);margin:2px 0 0;font-size:13px;font-weight:400}.logout-button{background:var(--accent-soft);color:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s}.logout-button:active{opacity:.8;transform:scale(.95)}.app-shell-centered{background:var(--surface-alt);justify-content:center;align-items:center;padding:20px}.lock-card{background:var(--surface);border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-lg);text-align:center;border:1px solid #fffc;padding:40px 30px}.lock-card .app-brand{margin-bottom:8px;font-size:28px}.session-text{background:var(--surface-alt);color:var(--muted);border-radius:12px;margin:20px 0;padding:12px;font-size:13px}.password-input{border:2px solid var(--border);text-align:center;background:var(--surface-alt);border-radius:16px;outline:none;width:100%;padding:16px;font-size:16px;transition:all .2s}.password-input:focus{border-color:var(--accent);background:var(--surface)}.primary-button{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:16px;width:100%;margin-top:20px;padding:16px;font-size:15px;font-weight:700;transition:all .2s}.primary-button:active{transform:scale(.98)}.secondary-button{background:var(--surface-alt);color:var(--ink);border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.secondary-button:active{transform:scale(.95)}.link-tool-btn{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-md);border:1px solid #0000;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;text-decoration:none;transition:all .3s cubic-bezier(.2,0,0,1);display:inline-flex}.link-tool-btn:hover{background:var(--accent);color:#fff}.link-tool-btn.full-width{justify-content:center;width:100%;margin-top:10px}.lock-icon-container{background:var(--accent-soft);width:80px;height:80px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;display:flex}.error-text{color:#ef4444;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.input-group{margin-top:24px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:8px;font-size:11px;font-weight:800}.header-actions{align-items:center;gap:12px;display:flex}.extra-actions{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.panel-section{padding:20px}.panel-lead h2{letter-spacing:-.02em;margin:0 0 20px;font-size:24px;font-weight:800}.gallery-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.gallery-list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;padding:0;transition:all .3s cubic-bezier(.2,0,0,1);display:flex;overflow:hidden}.gallery-list-card:active{transform:scale(.94)}.gallery-preview-placeholder{aspect-ratio:1;background:var(--surface-alt);justify-content:center;align-items:center;display:flex;overflow:hidden}.gallery-cover{object-fit:cover;width:100%;height:100%}.gallery-card-content{text-align:center;padding:12px 8px}.gallery-list-name{color:var(--ink);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:13px;font-weight:700;display:-webkit-box;overflow:hidden}.photo-grid-masonry{gap:6px;width:100%;display:flex}.masonry-column{flex-direction:column;flex:1;gap:6px;display:flex}.photo-thumbnail-tile{background:var(--surface-alt);cursor:pointer;border:none;border-radius:6px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.photo-thumbnail-tile img{width:100%;height:auto;transition:transform .4s;display:block}.photo-thumbnail-tile:active img{opacity:.8;transform:scale(1.1)}.pv-overlay{z-index:3000;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pv-topbar{z-index:10;padding:env(safe-area-inset-top,0) 16px 0;padding-top:max(env(safe-area-inset-top,0px), 16px);-webkit-backdrop-filter:blur();backdrop-filter:blur();background:linear-gradient(#000000bf 0%,#0000 100%);justify-content:space-between;align-items:center;gap:12px;padding-bottom:20px;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:0;left:0;right:0}.pv-close-btn{-webkit-backdrop-filter:blur(12px);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;transition:background .2s,transform .15s;display:flex}.pv-close-btn:active{background:#ffffff40;transform:scale(.88)}.pv-counter{color:#ffffffe6;letter-spacing:.02em;text-shadow:0 1px 4px #00000080;text-align:center;flex:1;font-size:15px;font-weight:600}.pv-original-btn{color:#000;letter-spacing:.01em;white-space:nowrap;background:#fffffff2;border-radius:99px;padding:10px 18px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .15s,opacity .15s;display:inline-block}.pv-original-btn:active{opacity:.8;transform:scale(.93)}.pv-stage{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.pv-image{object-fit:contain;transform-origin:50%;pointer-events:none;max-width:100%;max-height:100vh;transition:opacity .3s;display:block}.pv-spinner{border:3px solid #ffffff26;border-top-color:#fffc;border-radius:50%;width:36px;height:36px;animation:.7s linear infinite pv-spin;position:absolute}@keyframes pv-spin{to{transform:rotate(360deg)}}.pv-nav-left,.pv-nav-right{z-index:5;transition:opacity .3s;position:absolute;top:50%;transform:translateY(-50%)}.pv-nav-left{left:12px}.pv-nav-right{right:12px}.pv-nav-btn{-webkit-backdrop-filter:blur(14px);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#1e1e1ea6;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background .2s,transform .15s;display:flex}.pv-nav-btn:active{background:#505050cc;transform:scale(.88)}.pv-dots-bar{padding-bottom:max(env(safe-area-inset-bottom,0px), 20px);z-index:5;background:linear-gradient(#0000 0%,#0009 100%);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding-top:20px;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.pv-dot{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff59;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s,width .25s}.pv-dot-active{background:#fff;border-radius:3px;width:18px;transform:none}.pv-swipe-hint{color:#ffffff8c;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.pv-visible{opacity:1;pointer-events:auto}.pv-hidden{opacity:0;pointer-events:none}.pv-slide{touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.pv-loading-state{justify-content:center;align-items:center;display:flex;position:absolute}.spinner-icon{color:#ffffff80;animation:1s linear infinite pv-spin}.pv-info-pill{-webkit-backdrop-filter:blur(10px);color:#fff;background:#ffffff26;border:1px solid #ffffff1a;border-radius:99px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.status-card{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:16px;padding:60px 20px;font-weight:500;display:flex}.pwa-prompt{padding:20px;padding-bottom:max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);z-index:10000;background:#0f172a66;justify-content:center;animation:.4s cubic-bezier(.16,1,.3,1) pwa-slide-up;display:flex;position:fixed;bottom:0;left:0;right:0}.update-prompt .pwa-content{border-top:4px solid #10b981}@keyframes pwa-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pwa-content{background:var(--surface);border-radius:var(--radius-xl);align-items:center;gap:20px;width:100%;max-width:460px;padding:24px;display:flex;position:relative;box-shadow:0 20px 40px #0003}.pwa-icon-wrapper{background:var(--surface-alt);width:64px;min-width:64px;height:64px;box-shadow:var(--shadow-sm);border-radius:18px;justify-content:center;align-items:center;display:flex;position:relative}.pwa-app-icon{object-fit:cover;border-radius:18px;width:100%;height:100%}.pwa-badge{color:#fff;border:3px solid var(--surface);background:#10b981;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.pwa-text{flex:1}.pwa-text h3{color:var(--ink);margin:0;font-size:17px;font-weight:800}.pwa-text p{color:var(--muted);margin:4px 0 0;font-size:14px;line-height:1.5}.pwa-stars{color:var(--accent);margin-top:8px;font-size:12px;font-weight:700}.pwa-stars span{color:var(--muted);font-weight:400}.pwa-actions{flex-direction:column;gap:8px;display:flex}.pwa-install{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:12px;padding:12px 20px;font-size:14px;font-weight:700;transition:transform .2s}.pwa-install:active{transform:scale(.95)}.pwa-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px;font-size:13px;font-weight:600}.spinner{border:3px solid #1f39471a;border-top:3px solid var(--ink);border-radius:50%;width:40px;height:40px;margin:0 auto 15px;animation:1s linear infinite pwa-spin}@keyframes pwa-spin{0%{transform:rotate(0)}}.category-selection-grid{grid-template-columns:repeat(2,1fr);gap:16px;padding:10px;display:grid}.category-button{aspect-ratio:.9;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;transition:all .3s cubic-bezier(.2,0,0,1);display:flex}.category-button:active{background:var(--surface-alt);transform:scale(.95)}.category-button .category-icon-wrapper{background:var(--surface-alt);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;margin-bottom:8px;font-size:32px;transition:all .3s;display:flex}.category-button:hover .category-icon-wrapper{background:var(--accent-soft);transform:translateY(-4px)}.category-button .category-name{color:var(--ink);font-size:16px;font-weight:700}.category-button .category-stats{color:var(--muted);font-size:13px;font-weight:500}
