<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>FoxManager</title>
<style>
:root{
  --bg:#f3f4f6; --panel:#ffffff; --panel2:#f1f3f6; --line:#e3e5ea;
  --text:#1f2329; --muted:#6b7280; --accent:#f97316; --accent2:#fb923c;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
a{color:var(--accent)}
.fm-top{height:52px;display:flex;align-items:center;gap:14px;padding:0 18px;
  background:var(--panel);border-bottom:1px solid var(--line);}
.fm-logo{font-weight:800;font-size:17px;letter-spacing:.3px;display:flex;align-items:center;gap:9px;}
.fm-logo .dot{width:12px;height:12px;border-radius:3px;background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:inline-block;box-shadow:0 0 12px rgba(249,115,22,.35)}
.fm-root{font-size:12px;color:var(--muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.fm-btn{text-decoration:none;font-size:13px;font-weight:600;color:var(--text);
  background:var(--panel2);border:1px solid var(--line);padding:7px 14px;border-radius:8px;}
.fm-btn:hover{border-color:var(--accent);color:var(--accent)}
#fox-elfinder{height:calc(100vh - 52px)}
/* login */
.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:360px;max-width:100%;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:34px 30px;box-shadow:0 18px 50px rgba(0,0,0,.08)}
.login-card h1{margin:0 0 6px;font-size:22px;display:flex;align-items:center;gap:10px}
.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 24px}
.login-card input[type=password]{width:100%;padding:12px 14px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--text);font-size:15px;outline:none}
.login-card input[type=password]:focus{border-color:var(--accent)}
.login-card button{width:100%;margin-top:14px;padding:12px;border-radius:9px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:15px;font-weight:700}
.login-card button:disabled{opacity:.6;cursor:default}
.login-err{color:#dc2626;font-size:13px;margin-top:12px;min-height:18px}
.login-foot{margin-top:20px;font-size:11px;color:var(--muted);text-align:center}
</style>
</head>
<body>
<div class="login-wrap">
  <form class="login-card" id="fox-login" autocomplete="off">
    <h1><span class="dot"></span>FoxManager</h1>
    <p class="sub">Masukkan password untuk mengakses file manager.</p>
    <input type="password" name="fox_password" id="fox-password" placeholder="Password" autofocus>
    <button type="submit" id="fox-submit">Masuk</button>
    <div class="login-err" id="fox-err"></div>
    <div class="login-foot">FoxManager &middot; single-file web file manager</div>
  </form>
</div>
<script>
(function(){
  var form=document.getElementById('fox-login'),
      pass=document.getElementById('fox-password'),
      btn=document.getElementById('fox-submit'),
      err=document.getElementById('fox-err');
  form.addEventListener('submit',function(e){
    e.preventDefault();
    err.textContent='';
    btn.disabled=true; btn.textContent='Memproses...';
    var body=new URLSearchParams();
    body.append('fox_action','login');
    body.append('fox_password',pass.value);
    fetch(window.location.href,{method:'POST',body:body,
      headers:{'Content-Type':'application/x-www-form-urlencoded'}})
      .then(function(r){return r.json();})
      .then(function(d){
        if(d && d.ok){ window.location.reload(); }
        else { err.textContent=(d&&d.error)?d.error:'Password salah.'; btn.disabled=false; btn.textContent='Masuk'; }
      })
      .catch(function(){ err.textContent='Gagal terhubung.'; btn.disabled=false; btn.textContent='Masuk'; });
  });
})();
</script>
</body>
</html>
{"version":"1.0","provider_name":"V.VAL","provider_url":"https:\/\/v.val-sculptures.com\/en","title":"V.VAL - L'Attente","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"rifa4Co7Ki\"><a href=\"https:\/\/v.val-sculptures.com\/en\/lattente\/\">L&#8217;Attente<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/v.val-sculptures.com\/en\/lattente\/embed\/#?secret=rifa4Co7Ki\" width=\"600\" height=\"338\" title=\"&#8220;L&#8217;Attente&#8221; &#8212; V.VAL\" data-secret=\"rifa4Co7Ki\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/v.val-sculptures.com\/wp-includes\/js\/wp-embed.min.js\n<\/script>","thumbnail_url":"https:\/\/v.val-sculptures.com\/wp-content\/uploads\/2023\/01\/Lattente360_126.jpg","thumbnail_width":1080,"thumbnail_height":1080,"description":"V.VAL vous pr\u00e9sente ses sculptures: \"Mes cr\u00e9ations se nourrissent de ce que je suis, de ce que je contemple, de mes aspirations\u2026 mais aussi de mes connaissances artistiques.\""}