*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}:root{color-scheme:light dark;--h: 240;--s: 3%;--l: 11%;--h-primary: 211;--s-primary: 100%;--l-primary: 40%;--bg: hsl(var(--h) var(--s) var(--l));--surface-1: hsl(var(--h) var(--s) 20%);--surface-2: hsl(var(--h) var(--s) 25%);--surface-3: hsl(var(--h) var(--s) 30%);--surface-4: hsl(var(--h) var(--s) 35%);--on-hover: hsl(var(--h) var(--s) calc(var(--l) + 15%));--text-1: hsl(0 0% 94%);--text-2: hsl(0 0% 80%);--text-muted: hsl(0 0% 65%);--border: hsl(var(--h) var(--s) calc(var(--l) + 40%));--outline: hsl(var(--h) var(--s) calc(var(--l) + 60%));--primary: hsl(var(--h-primary) var(--s-primary) var(--l-primary));--on-primary: hsl(var(--h-primary) var(--s-primary) calc(var(--l-primary) - 8%));--secondary: hsl(var(--h-secondary) var(--s-secondary) var(--l-secondary));--on-secondary: hsl(var(--h-secondary) var(--s-secondary) calc(var(--l-secondary) - 8%));--success:hsl(140 75% 40%);--warning:hsl(40 85% 52%);--error: hsl(0 70% 52%);--black: hsl(0, 0%, 0%);--white: hsl(0, 0%, 100%);--font-system: system-ui, Avenir, Helvetica, Arial, sans-serif;--radius: 8px;--shadow-1: 0 1px 2px hsl(0 0% 0% / .08);--shadow-2: 0 4px 12px hsl(0 0% 0% / .12);color:var(--text-1);background:var(--bg)}@media (prefers-color-scheme: light){:root{--h: 0;--s: 0%;--l: 97%;--bg: hsl(var(--h) var(--s) var(--l));--surface-1: hsl(var(--h) var(--s) 92%);--surface-2: hsl(var(--h) var(--s) 86%);--surface-3: hsl(var(--h) var(--s) 78%);--surface-4: hsl(var(--h) var(--s) 74%);--on-hover: hsl(var(--h) var(--s) calc(var(--l) - 15%));--text-1: hsl(0 0% 13%);--text-2: hsl(0 0% 28%);--text-muted: hsl(0 0% 45%);--border: hsl(var(--h) var(--s) calc(var(--l) - 40%));--outline: hsl(var(--h) var(--s) calc(var(--l) - 60%))}}html[data-theme=light]{color-scheme:light;--h: 0;--s: 0%;--l: 97%;--bg: hsl(var(--h) var(--s) var(--l));--surface-1: hsl(var(--h) var(--s) 92%);--surface-2: hsl(var(--h) var(--s) 86%);--surface-3: hsl(var(--h) var(--s) 78%);--surface-4: hsl(var(--h) var(--s) 74%);--on-hover: hsl(var(--h) var(--s) calc(var(--l) - 15%));--text-1: hsl(0 0% 13%);--text-2: hsl(0 0% 28%);--text-muted: hsl(0 0% 45%);--border: hsl(var(--h) var(--s) calc(var(--l) - 40%));--outline: hsl(var(--h) var(--s) calc(var(--l) - 60%))}html[data-theme=dark]{color-scheme:dark;--h: 240;--s: 3%;--l: 11%;--bg: hsl(var(--h) var(--s) var(--l));--surface-1: hsl(var(--h) var(--s) 14%);--surface-2: hsl(var(--h) var(--s) 18%);--surface-3: hsl(var(--h) var(--s) 22%);--surface-4: hsl(var(--h) var(--s) 26%);--on-hover: hsl(var(--h) var(--s) calc(var(--l) + 15%));--text-1: hsl(0 0% 94%);--text-2: hsl(0 0% 80%);--text-muted: hsl(0 0% 65%);--border: hsl(var(--h) var(--s) calc(var(--l) + 40%));--outline: hsl(var(--h) var(--s) calc(var(--l) + 60%))}:root{font-family:var(--font-system);line-height:1.5;font-weight:400}body{min-height:100vh;display:flex;flex-direction:column}#root,.home-page{display:flex;flex-direction:column;flex:1}.toggle-theme-button-container{border-radius:10px;padding:.3rem;margin:.3rem;cursor:pointer}.toggle-theme-button-container:hover{background-color:var(--on-hover)}.button-theme-toggle{display:flex;background:none;border:none;cursor:pointer;color:inherit;font:inherit}.input{padding:.75rem;border-radius:var(--radius);border:1px solid var(--border);font-size:1rem;color:var(--text-1);display:flex;align-items:center}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .input{flex:1;padding-right:40px}.toggle-show-password{position:absolute;right:5px;background:none;border:none;border-radius:10px;cursor:pointer;display:flex;padding:.5rem;color:inherit}.form{display:flex;flex-direction:column;width:100%;gap:1rem}.error-message{color:var(--error);font-weight:700}.submit-button{padding:.75rem;border:none;border-radius:8px;background:var(--primary);color:var(--text-1);font-size:1rem;font-weight:700;cursor:pointer;transition:backgroud .3s}.submit-button:hover{background:var(--on-primary);color:var(--text-1)}.login-page{display:flex;align-items:center;justify-content:center;flex:1;padding:24px;position:relative}.theme-button-container{position:absolute;top:0;right:0;padding:1rem}.login-card{display:flex;flex-direction:column;gap:28px;width:min(480px,100%);padding:48px 44px;background:var(--surface-1);border:1px solid var(--border);border-radius:calc(var(--radius) * 2);box-shadow:0 8px 32px #0000001f}.login-title{font-size:28px;font-weight:700;color:var(--text-1);text-align:center;letter-spacing:-.02em}.dropdown-container{position:fixed;top:calc(var(--top) + .6rem);left:auto;right:var(--right, auto);min-width:var(--minWidth, auto);z-index:1000;background-color:var(--surface-2);border:1px solid var(--black);border-radius:var(--radius)}.profile-dropdown-container{padding:.3rem;font-size:medium}.profile-dropdown-container ul{display:flex;flex-direction:column;gap:.3rem}.profile-dropdown-container li{border-radius:var(--radius);padding:.3rem 3rem .3rem .5rem;list-style:none}.profile-dropdown-container li:hover{background-color:var(--on-hover)}.profile-dropdown-container a{color:var(--text-1);text-decoration:none}.header-container{display:flex;height:44px;padding:0 15px;justify-content:space-between;align-items:center;font-size:14px;background-color:var(--surface-1)}.title{cursor:pointer;text-decoration:none;color:var(--text-1);font-size:24px;font-weight:700}.section{opacity:.3;text-transform:capitalize;font-weight:400;font-weight:500}.settings-section{display:flex;align-items:center}.profile-section{display:flex;align-items:center;padding:.3rem;margin:.3rem;border-radius:var(--radius);cursor:pointer}.profile-section:hover{background-color:var(--on-hover)}.card-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);background-color:var(--surface-1);color:var(--text-1);text-decoration:none;cursor:pointer;transition:background-color .15s,transform .15s,box-shadow .15s,border-color .15s;min-width:160px;min-height:140px}.card-container:hover{background-color:var(--surface-2);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-2)}.card-icon{font-size:36px;line-height:1}.card-name{font-size:16px;font-weight:600;color:var(--text-1)}.home-main{display:flex;align-items:center;justify-content:center;flex:1;padding:40px 20px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,200px));gap:16px;justify-content:center}.gallery-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}.gallery-layout{display:flex;flex:1;overflow:hidden}.gallery-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:20px 12px;background-color:var(--surface-1);border-right:1px solid var(--border);overflow-y:auto}.sidebar-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:0 8px;margin-bottom:8px}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius);background:transparent;color:var(--text-2);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:background-color .15s,color .15s}.sidebar-btn:hover{background-color:var(--surface-2);color:var(--text-1)}.sidebar-btn.active{background-color:var(--primary);color:#fff}.sidebar-btn-icon{font-size:16px;line-height:1;flex-shrink:0}.sidebar-count{padding:12px 10px 0;font-size:12px;color:var(--text-muted)}.admin-section{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.admin-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background-color .15s,color .15s,border-color .15s}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.upload-btn:hover:not(:disabled){background-color:#0063cc1f;border-color:var(--primary);color:var(--primary)}.dedupe-btn:hover:not(:disabled){background-color:#da2f2f1a;border-color:var(--error);color:var(--error)}.admin-msg{font-size:11px;color:var(--text-muted);padding:0 2px}.admin-msg.error{color:var(--error)}.gallery-main{flex:1;overflow-y:auto;padding:20px}.gallery-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:300px;color:var(--text-muted)}.gallery-error{color:var(--error)}.spinner{width:36px;height:36px;border:3px solid var(--surface-3);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.media-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background-color:var(--surface-2);cursor:pointer;border:none;padding:0;display:block;transition:transform .15s,box-shadow .15s}.media-thumb:hover{transform:scale(1.03);box-shadow:var(--shadow-2);z-index:1}.media-thumb:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.media-thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-placeholder{width:100%;height:100%;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--surface-3)}.play-icon{font-size:28px;color:var(--text-muted);line-height:1}.media-thumb:hover .video-placeholder .play-icon{color:var(--text-1)}.thumb-overlay{position:absolute;bottom:0;left:0;right:0;padding:20px 8px 8px;background:linear-gradient(transparent,#000000a6);opacity:0;transition:opacity .2s}.media-thumb:hover .thumb-overlay{opacity:1}.thumb-name{display:block;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox-backdrop{position:fixed;inset:0;z-index:1000;background:#000000d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;display:flex;flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;animation:scale-in .2s ease}@keyframes scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-close{position:absolute;top:-44px;right:0;background:#ffffff26;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;cursor:pointer;transition:background-color .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-close:hover{background:#ffffff4d}.lightbox-media{display:flex;align-items:center;justify-content:center;max-width:90vw;max-height:80vh}.lightbox-loading{display:flex;align-items:center;justify-content:center;width:300px;height:300px}.lightbox-image{max-width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 20px 60px #00000080}.lightbox-video{max-width:100%;max-height:80vh;border-radius:var(--radius);box-shadow:0 20px 60px #00000080}.lightbox-info{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:12px;padding:0 4px}.lightbox-filename{font-size:13px;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.lightbox-meta{font-size:12px;color:#ffffff80;flex-shrink:0}@media (max-width: 600px){.gallery-sidebar{width:56px;padding:16px 8px}.sidebar-title,.sidebar-count{display:none}.sidebar-btn{justify-content:center;padding:10px}.sidebar-btn span:last-child{display:none}.media-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}#root{width:100%;min-width:320px;margin:0 auto;border:0px solid purple}@media (min-width: 480px){#root{border:0px solid blue}}@media (min-width: 768px){#root{border:0px solid green}}@media (min-width: 1024px){#root{border:0px solid yellow}}@media (min-width: 1440px){#root{border:0px solid red}}
