:root{--bg:#3a2068;--content-bg:#2f1a57;--panel:#412473;--accent:#72bebc;--accent-bright:#8fe0dd;--sidebar-link:#a99ae8;--divider:rgba(143,224,221,.35);--text:#ece8f7;--muted:#a99ae8;--photo-name:#2a2335}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font:400 14px/1.55 Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent-bright);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.fbox:focus-visible,.ibox:focus-visible{outline:3px solid var(--accent-bright);outline-offset:2px}.wrapper{width:950px;margin:0 auto;padding-top:20px}.hdr{height:84px;position:relative;display:flex;flex-direction:column;justify-content:center}.hdr h1{font-size:2.7em;color:var(--accent);font-weight:700;letter-spacing:.5px}.hdr h3{color:var(--muted);font-weight:400;font-size:.95em;margin-top:2px}.hdr .userbox{position:absolute;top:14px;right:0;display:flex;align-items:center;gap:10px;font-size:.92em}.hdr .userbox .avatar{width:36px;height:36px;border-radius:50%;border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;color:var(--accent-bright);font-weight:700;background:var(--panel)}.hdr .userbox .role{color:var(--accent-bright);font-size:.85em}.hdr .lang{position:absolute;top:-8px;right:0;display:flex;gap:4px}.hdr .lang button{background:var(--panel);border:1px solid var(--accent);color:var(--accent);font-size:.72em;padding:2px 8px;cursor:pointer;border-radius:3px}.hdr .lang button.active{background:var(--accent);color:var(--bg)}.menu{height:52px;background:var(--accent);border-radius:7px 7px 0 0;display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:0 18px}.menu a,.menu button{color:var(--bg);font-weight:700;font-size:1.05em;text-transform:capitalize;padding:6px 16px;border-bottom:3px solid transparent}.menu a:hover,.menu a.current,.menu button:hover,.menu button.current{border-bottom:3px solid var(--bg);text-decoration:none}.menu button:focus-visible{outline:2px solid var(--bg);outline-offset:-4px}.menu .soon{opacity:.5;cursor:default}.menu .soon:hover{border-bottom:3px solid transparent}.menu .soon:after{content:" soon";font-size:.55em;vertical-align:super;opacity:.8}.content{display:flex;background:var(--content-bg);border:1px solid var(--divider);border-top:none;border-radius:0 0 7px 7px;min-height:540px}.sidebar{width:230px;flex:0 0 230px;padding:22px 24px;border-right:1px solid var(--divider)}.sidebar .grp{margin-bottom:26px}.sidebar h2{color:var(--accent-bright);font-size:1.15em;margin-bottom:10px;font-weight:600}.sidebar ul{list-style:none}.sidebar li{line-height:2em}.sidebar a,.sidebar button{color:var(--sidebar-link);text-align:left}.sidebar button:hover{text-decoration:underline}.sidebar small{color:var(--muted);opacity:.7}.main{flex:1;padding:24px 28px;min-width:0}.main h2{color:var(--accent-bright);font-size:1.4em;margin-bottom:18px;font-weight:600}.folders{display:flex;flex-wrap:wrap;gap:8px}.fbox{position:relative;width:212px;height:210px;background-size:212px 210px;background-repeat:no-repeat;cursor:pointer;transition:transform .12s}.fbox:hover{transform:translateY(-3px)}.fbox.deletable .fcover{outline:2px dashed #e06a6a;outline-offset:2px}.fbox.deletable.selected .fcover{outline:3px solid #e06a6a;background:#f6d6d6}.fbox .checkmark{position:absolute;top:6px;left:20px;width:22px;height:22px;border-radius:50%;background:#e06a6a;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:3;border:2px solid #fff}.fbox .fcover{position:absolute;top:33px;left:15px;width:170px;height:110px;background:#e4dff5;display:flex;align-items:center;justify-content:center;font-size:52px;overflow:hidden}.fbox .fcover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.fbox .sbadge{position:absolute;top:38px;right:20px;background:var(--accent);color:var(--bg);font-size:10px;font-weight:700;padding:2px 7px;border-radius:9px;z-index:2}.fbox .fname{position:absolute;bottom:22px;left:15px;width:170px;text-align:center;color:var(--photo-name);font-family:Courier New,monospace;font-weight:700;font-size:13px}.fbox .fsub{position:absolute;bottom:6px;left:15px;width:170px;text-align:center;color:#4a4334;font-family:Courier New,monospace;font-size:10px}.frames{display:flex;flex-wrap:wrap;gap:18px}.ibox{width:200px;background:#f4f2ee;border-radius:3px;padding:12px;box-shadow:0 4px 14px #00000059;cursor:pointer;transition:transform .12s,box-shadow .12s}.ibox:hover{transform:translateY(-4px);box-shadow:0 8px 22px #00000073}.ibox.deletable{box-shadow:0 0 0 2px #e06a6a,0 4px 14px #00000059}.ibox.deletable.selected{box-shadow:0 0 0 4px #e06a6a,0 8px 22px #00000073}.ibox .checkmark{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:#e06a6a;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:3;border:2px solid #fff}.ibox .cover{position:relative;width:176px;height:176px;background:#ddd center/cover no-repeat;overflow:hidden;border-radius:2px}.ibox .cover img,.ibox .cover video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.ibox .vbadge{position:absolute;top:8px;left:8px;background:#000000b3;color:#fff;font-size:11px;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px;z-index:2}.ibox .sbadge{position:absolute;top:8px;right:8px;background:var(--accent);color:var(--bg);font-size:10px;font-weight:700;padding:2px 7px;border-radius:9px;z-index:2}.ibox .photo-name{padding:10px 4px;text-align:center;color:var(--photo-name);font-family:Courier New,monospace;font-size:12px;word-break:break-word}.modrow{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--divider);border-radius:8px;padding:10px;margin-bottom:10px}.modrow .thumb{width:96px;height:64px;-o-object-fit:cover;object-fit:cover;border-radius:5px;background:#000}.modrow .meta{flex:1}.modrow .meta .who{color:var(--muted);font-size:.88em}.modrow .acts{display:flex;gap:8px}.mini{padding:7px 15px;border-radius:5px;border:none;cursor:pointer;font-weight:700}.ok{background:#4ec88a;color:#06301c}.no{background:#e06a6a;color:#3a0a0a}.btn{background:var(--accent);color:var(--bg);font-weight:700;border:none;border-radius:6px;padding:9px 18px;cursor:pointer}.btn:hover{background:var(--accent-bright)}.field{background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:8px 11px;border-radius:5px}.footer{width:950px;margin:8px auto 30px;text-align:right;font-size:.78em;color:var(--muted);opacity:.7}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login .card{text-align:center;background:var(--content-bg);border:1px solid var(--divider);border-radius:10px;padding:48px 56px}.login h1{font-size:2.6em;color:var(--accent);font-weight:700;margin-bottom:4px}.login p{color:var(--muted);margin-bottom:26px}.crumb{color:var(--muted);font-size:.9em;margin-bottom:14px}.crumb a,.crumb button{color:var(--accent-bright);cursor:pointer}.crumb button:hover{text-decoration:underline}.soon-page{text-align:center;padding:70px 20px;color:var(--muted)}.soon-page .big{font-size:2.6em;margin-bottom:12px;opacity:.5}.menu a{cursor:pointer}.main-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.main-head h2{margin-bottom:0}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn.danger{background:#e06a6a;color:#3a0a0a}.btn.danger:hover{background:#ef8a8a}.btn.danger:disabled{opacity:.4;cursor:not-allowed}.del-hint{color:#e06a6a;font-weight:700;margin-bottom:12px}.error{color:#e06a6a;margin:8px 0}.empty{color:var(--muted);opacity:.8;padding:18px 0}.subtle{color:var(--muted);font-size:.9em;margin-top:2px}.linkback{background:none;border:none;color:var(--accent-bright);cursor:pointer;margin-bottom:10px;padding:0;font:inherit}.linkback:hover{text-decoration:underline}.create-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}.home-page{color:var(--text);padding:4px 0;max-width:640px}.home-page p{margin-bottom:12px}.ibox .photo-sub{text-align:center;color:#7a7468;font-family:Courier New,monospace;font-size:10px;padding:0 4px 8px}.rename-btn{font-size:.5em;font-weight:400;vertical-align:middle;margin-left:12px}.mini-select{padding:6px 8px;font-size:.85em;max-width:160px}.access{background:var(--panel);border:1px solid var(--divider);border-radius:8px;padding:14px 16px;margin-bottom:18px}.access h3{color:var(--accent-bright);font-size:1.05em;font-weight:600;margin-bottom:10px}.access-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.access-add .field{min-width:220px}.access-list{list-style:none;display:flex;flex-direction:column;gap:6px}.access-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--content-bg);border:1px solid var(--divider);border-radius:6px;padding:7px 12px;max-width:380px}.access-list li span{color:var(--text);font-family:Courier New,monospace;font-size:13px}.access-list li .linkback{margin:0}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;display:flex;align-items:center;justify-content:center;z-index:100}.lightbox img,.lightbox video{max-width:90vw;max-height:90vh}.lightbox-close{position:absolute;top:14px;right:24px;background:none;border:none;color:#fff;font-size:2.2em;cursor:pointer;line-height:1}.lightbox-cover{position:absolute;top:18px;left:24px;background:#0006;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:.95em;padding:6px 12px;border-radius:6px;cursor:pointer}.lightbox-cover:hover{background:#000000a6}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#00000059;border:none;color:#fff;font-size:3em;line-height:1;width:1.4em;height:2em;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}.lightbox-nav:hover{background:#0009}.lightbox-nav.prev{left:14px}.lightbox-nav.next{right:14px}.lightbox-counter{position:absolute;bottom:18px;left:50%;transform:translate(-50%);color:#fff;font-size:.95em;background:#0006;padding:2px 10px;border-radius:12px}.progress{position:relative;height:24px;background:var(--panel);border:1px solid var(--divider);border-radius:6px;overflow:hidden;margin-bottom:16px}.progress-bar{height:100%;background:var(--accent);transition:width .3s ease}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.8em;font-weight:700;color:var(--text)}.skel-tile{width:212px;height:210px;border-radius:8px;background:linear-gradient(100deg,var(--panel) 30%,rgba(143,224,221,.14) 50%,var(--panel) 70%);background-size:300% 100%;animation:shimmer 1.3s ease-in-out infinite}.skel-photo{width:200px;height:200px}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-150% 0}}@media (prefers-reduced-motion: reduce){.skel-tile{animation:none}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:120;padding:20px}.modal-card{background:var(--content-bg);border:1px solid var(--divider);border-radius:10px;padding:26px 30px;max-width:420px;box-shadow:0 12px 40px #00000080}.modal-msg{color:var(--text);margin-bottom:20px;line-height:1.5}.modal-acts{display:flex;gap:10px;justify-content:flex-end;align-items:center}@media (max-width: 980px){.wrapper{width:auto;max-width:950px;padding-left:16px;padding-right:16px}.footer{width:auto;margin:8px 16px 30px}}@media (max-width: 700px){.hdr{height:auto;min-height:64px;padding:6px 0 4px}.hdr h1{font-size:2em}.hdr h3{font-size:.85em}.hdr .userbox{position:static;justify-content:flex-end;margin-top:6px}.hdr .lang{top:2px}.menu{height:auto;min-height:48px;justify-content:center;flex-wrap:wrap;gap:2px;padding:6px 8px}.menu a{font-size:.95em;padding:6px 10px}.content{flex-direction:column;min-height:0}.sidebar{width:auto;flex:none;border-right:none;border-bottom:1px solid var(--divider);padding:16px 18px}.sidebar .grp{margin-bottom:18px}.main{padding:18px 16px}.main h2{font-size:1.25em}.folders,.frames{justify-content:center;gap:14px}.modrow{flex-wrap:wrap}.modrow .meta{flex:1 1 140px}.access-list li{max-width:none}.login .card{padding:32px 22px;margin:0 16px}.login h1{font-size:2.1em}.lightbox img,.lightbox video{max-width:96vw;max-height:86vh}.lightbox-nav{font-size:2em;width:1.5em;height:1.7em}.lightbox-nav.prev{left:6px}.lightbox-nav.next{right:6px}.lightbox-close{top:8px;right:14px;font-size:2em}}
