https://qu.ax/

제출된 URL:
https://qu.ax/
보고서 완료:

링크 · 1개 결과

링크텍스트
https://trace.catTrace.cat

JavaScript 변수 · 6개 결과

이름유형
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
tailwindobject
/template.htmlstring
tianjiobject

콘솔 로그 메시지 · 1개 결과

유형카테고리로그
warningother
URL
https://cdn.tailwindcss.com/
텍스트
cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation

HTML

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="qu.ax - Simple, private, and reliable file hosting service. Upload and share files easily with our user-friendly platform. Fast, secure, and free to use.">
    <meta name="keywords" content="file hosting, file sharing, file upload, secure file hosting, private file sharing, qu.ax">
    <meta name="author" content="qu.ax">
    <meta name="robots" content="index, follow">
    <meta name="language" content="English">

    <meta property="og:type" content="website">
    <meta property="og:url" content="https://qu.ax">
    <meta property="og:title" content="qu.ax - Simple &amp; Private File Hosting">
    <meta property="og:description" content="Fast, secure, and private file hosting service. Upload and share files with ease.">
    <meta property="og:image" content="https://qu.ax/favicon.ico">

    <meta name="twitter:card" content="summary">
    <meta name="twitter:url" content="https://qu.ax">
    <meta name="twitter:title" content="qu.ax - Simple &amp; Private File Hosting">
    <meta name="twitter:description" content="Fast, secure, and private file hosting service. Upload and share files with ease.">
    <meta name="twitter:image" content="https://qu.ax/favicon.ico">

    <meta name="theme-color" content="#151515">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <link rel="icon" type="image/png" sizes="32x32" href="favicon.ico">
    <link rel="icon" type="image/x-icon" href="/favicon.ico">

    <link rel="canonical" href="https://qu.ax">

    <title>qu.ax - Simple &amp; Private File Hosting</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&amp;display=swap" rel="stylesheet">
    <style>
        body {
            font-family: 'Open Sans', sans-serif;
            background-color: #151515;
        }
        .gradient-text {
            background: linear-gradient(90deg, #E555A6 0%, #e80860 100%);
            -webkit-background-clip: text;
            -moz-background-clip: text;
            -webkit-text-fill-color: transparent;
            -moz-text-fill-color: transparent;
        }
        #upload-input {
            position: absolute;
            top: 0;
            left: -5000px;
        }
.gradient-hover {
    position: relative;
    color: #ffffff;
    transition: color 0.3s ease;
}

.gradient-hover::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 2px;
    background: linear-gradient(90deg, #E555A6 0%, #e80860 100%);
    opacity: 0;
    transform: scaleX(0);
    transition: all 0.3s ease;
}

.gradient-hover:hover {
    color: #e80860;
}

.gradient-hover:hover::after {
    opacity: 1;
    transform: scaleX(1);
}
        .grill-container {
            position: fixed;
            bottom: 0;
            right: 200px;
            z-index: -1;
            pointer-events: none;
            height: auto; /* Changed from fixed height */
            max-height: 80vh; /* Added max-height to prevent overflow */
            display: flex;
            align-items: flex-end;
        }

        .grill-image {
            height: auto; /* Changed from fixed height */
            width: auto; /* Changed from fixed width */
            background-image: url('/grill.php');
            background-position: center;
            background-repeat: no-repeat;
            background-size: contain; /* Changed to contain */
            min-width: 100px; /* Added minimum width */
            max-width: 100%; /* Added maximum width */
            max-height: 100%; /* Added maximum height */
        }

        /* Settings dropdown styles */
        .settings-dropdown {
            display: none;
            position: absolute;
            right: 0;
            top: 100%;
            margin-top: 0.5rem;
            background-color: #18181b;
            border: 1px solid #27272a;
            border-radius: 0.5rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
            z-index: 50;
            min-width: 200px;
        }

        .settings-dropdown.show {
            display: block;
        }

        .settings-dropdown-backdrop {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 40;
        }

        .settings-dropdown-backdrop.show {
            display: block;
        }

        .upload-group {
            position: relative;
            display: inline-flex;
            gap: 0.5rem;
        }
    </style>
    <script async="" defer="" src="https://tianji.1337.la/tracker.js" data-website-id="cm4krj4fm000187p2belzg55x"></script>
<style>*, ::before, ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/* ! tailwindcss v3.4.16 | MIT License | https://tailwindcss.com */*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:0.5rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-\[700px\]{max-width:700px}.-translate-y-\[2px\]{--tw-translate-y:-2px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:0.5rem}.space-x-4 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.25rem * var(--tw-space-y-reverse))}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:0.5rem}.rounded-md{border-radius:0.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#a20140\]{--tw-border-opacity:1;border-color:rgb(162 1 64 / var(--tw-border-opacity, 1))}.border-\[\#e80860\]{--tw-border-opacity:1;border-color:rgb(232 8 96 / var(--tw-border-opacity, 1))}.border-zinc-600{--tw-border-opacity:1;border-color:rgb(82 82 91 / var(--tw-border-opacity, 1))}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.p-2{padding:0.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-6xl{font-size:3.75rem;line-height:1}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-\[\#e80860\]{--tw-text-opacity:1;color:rgb(232 8 96 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.transition-colors{transition-property:color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-200{transition-duration:200ms}.duration-300{transition-duration:300ms}.hover\:bg-\[\#a20140\]:hover{--tw-bg-opacity:1;background-color:rgb(162 1 64 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-700:hover{--tw-bg-opacity:1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.hover\:text-\[\#a20140\]:hover{--tw-text-opacity:1;color:rgb(162 1 64 / var(--tw-text-opacity, 1))}</style></head>
<body class="min-h-screen text-gray-300">
    <div class="min-h-screen flex flex-col items-center justify-center p-4">
        <main class="w-full max-w-3xl mx-auto">
            <header class="text-center mb-12">
                <h1 class="text-6xl font-normal mb-2">
                    <span class="gradient-text">qu.ax</span>
                </h1>
                <p class="text-xl text-gray-400">Simple &amp; Private File Hosting</p>
            </header>

            <div class="grill-container">
                <img src="/grill.php" class="grill-image" alt="Grill Image">
            </div>

            <section class="mb-12">
                <div class="bg-zinc-900 rounded-lg p-8 text-center">
                    <form id="upload-form" class="mb-6 js">
                        <input type="file" id="upload-input" multiple="">
                        <div class="upload-group">
                            <button id="upload-btn" type="button" class="bg-zinc-800 hover:bg-[#a20140] border border-[#a20140] text-white px-8 py-4 rounded-lg text-xl transition-colors duration-300">
                                Select or drop file(s)
                            </button>

                            <div class="relative">
                                <button type="button" id="settings-btn" class="bg-zinc-800 hover:bg-zinc-700 border border-zinc-700 text-white px-4 py-4 rounded-lg transition-colors duration-300">
                                    <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path>
                                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
                                    </svg>
                                </button>

                                <div class="settings-dropdown-backdrop"></div>
                                <div id="settings-dropdown" class="settings-dropdown">
                                    <div class="p-4 border-b border-zinc-700">
                                        <h3 class="text-sm font-medium text-gray-300">File Storage Duration</h3>
                                    </div>
                                    <div class="p-2">
                                        <div class="space-y-1">
                                            <label class="block px-2 py-2 rounded-md cursor-pointer hover:bg-zinc-800 transition-colors duration-200">
                                                <input type="radio" name="file-expiry" value="1" class="hidden">
                                                <div class="flex items-center justify-between">
                                                    <span>1 day</span>
                                                    <div class="w-4 h-4 rounded-full border border-zinc-600 flex items-center justify-center expiry-radio"></div>
                                                </div>
                                            </label>
                                            <label class="block px-2 py-2 rounded-md cursor-pointer hover:bg-zinc-800 transition-colors duration-200">
                                                <input type="radio" name="file-expiry" value="7" class="hidden">
                                                <div class="flex items-center justify-between">
                                                    <span>7 days</span>
                                                    <div class="w-4 h-4 rounded-full border border-zinc-600 flex items-center justify-center expiry-radio"></div>
                                                </div>
                                            </label>
                                            <label class="block px-2 py-2 rounded-md cursor-pointer hover:bg-zinc-800 transition-colors duration-200">
                                                <input type="radio" name="file-expiry" value="30" class="hidden" checked="">
                                                <div class="flex items-center justify-between">
                                                    <span>30 days</span>
                                                    <div class="w-4 h-4 rounded-full border border-zinc-600 flex items-center justify-center expiry-radio"></div>
                                                </div>
                                            </label>
                                            <label class="block px-2 py-2 rounded-md cursor-pointer hover:bg-zinc-800 transition-colors duration-200">
                                                <input type="radio" name="file-expiry" value="365" class="hidden">
                                                <div class="flex items-center justify-between">
                                                    <span>1 year</span>
                                                    <div class="w-4 h-4 rounded-full border border-zinc-600 flex items-center justify-center expiry-radio"></div>
                                                </div>
                                            </label>
                                            <label class="block px-2 py-2 rounded-md cursor-pointer hover:bg-zinc-800 transition-colors duration-200">
                                                <input type="radio" name="file-expiry" value="-1" class="hidden">
                                                <div class="flex items-center justify-between">
                                                    <span>Permanent</span>
                                                    <div class="w-4 h-4 rounded-full border border-zinc-600 flex items-center justify-center expiry-radio"></div>
                                                </div>
                                            </label>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </form>
                    <p class="text-sm text-gray-400 mt-4">Max upload size is 256MB</p>
                    <ul id="upload-filelist" class="mt-6 text-left"></ul>
                </div>
            </section>

            <div class="bg-zinc-900 rounded-lg p-4 mb-8 text-center">
                <a href="/static/quax.sxcu" target="_blank" class="inline-flex items-center gap-2 gradient-hover font-medium">
                    <span>Using <img src="/img/ShareX_Logo_16.png" alt="ShareX" class="inline-block w-4 h-4 -translate-y-[2px]"> ShareX? Get our .sxcu file for direct desktop uploads!</span>
                    <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"></path>
                    </svg>
                </a>
            </div>

            <hr class="border-0 border-t border-[#e80860] my-8 max-w-[700px] mx-auto">

            <footer class="text-center space-x-4">
                <a href="mailto:[email protected]" class="text-[#e80860] hover:text-[#a20140] transition-colors duration-300">Report Abuse</a>
                <span class="text-gray-600">|</span>
                <a href="/donate.html" class="text-[#e80860] hover:text-[#a20140] transition-colors duration-300">Donate! ❤️</a>
                <span class="text-gray-600">|</span>
                <a href="/tos.html" class="text-[#e80860] hover:text-[#a20140] transition-colors duration-300">Terms of Service (Rules!)</a>
                <span class="text-gray-600">|</span>
                <a target="_blank" href="https://tracker.qu.ax/" class="text-[#e80860] hover:text-[#a20140] transition-colors duration-300">Tracker</a>
                <span class="text-gray-600">|</span>
                <a target="_blank" href="https://trace.cat" class="text-[#e80860] hover:text-[#a20140] transition-colors duration-300">Trace.cat</a>
            </footer>
        </main>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const settingsBtn = document.getElementById('settings-btn');
            const settingsDropdown = document.getElementById('settings-dropdown');
            const backdrop = document.querySelector('.settings-dropdown-backdrop');
            const radioInputs = document.querySelectorAll('input[name="file-expiry"]');

            function updateRadioButtons() {
                radioInputs.forEach(input => {
                    const radioDiv = input.nextElementSibling.querySelector('.expiry-radio');
                    if (input.checked) {
                        radioDiv.innerHTML = '<div class="w-2 h-2 rounded-full bg-[#e80860]"></div>';
                    } else {
                        radioDiv.innerHTML = '';
                    }
                });
            }

            settingsBtn.addEventListener('click', function(e) {
                e.stopPropagation();
                settingsDropdown.classList.toggle('show');
                backdrop.classList.toggle('show');
                updateRadioButtons();
            });

            backdrop.addEventListener('click', function() {
                settingsDropdown.classList.remove('show');
                backdrop.classList.remove('show');
            });

            radioInputs.forEach(input => {
                input.addEventListener('change', function() {
                    updateRadioButtons();
                    localStorage.setItem('preferred-expiry', this.value);
                });
            });

            const savedExpiry = localStorage.getItem('preferred-expiry');
            if (savedExpiry) {
                const radioToCheck = document.querySelector(`input[name="file-expiry"][value="${savedExpiry}"]`);
                if (radioToCheck) {
                    radioToCheck.checked = true;
                    updateRadioButtons();
                }
            }

            document.addEventListener('keydown', function(e) {
                if (e.key === 'Escape') {
                    settingsDropdown.classList.remove('show');
                    backdrop.classList.remove('show');
                }
            });
        });
    </script>
    <script src="/static/js/main2.js"></script>


</body></html>