*{box-sizing:border-box;margin:0;padding:0}body,html{-ms-overflow-style:none;font-family:Arial,sans-serif;font-size:16px;height:100%;line-height:1.5;overflow-y:auto;scrollbar-width:none;-webkit-user-select:none;user-select:none;&::-webkit-scrollbar{height:0;width:0}}#root{height:100%}.app-container{background-color:#e6f3ff;color:#333;display:flex;flex-direction:column;font-family:Arial,sans-serif;min-height:100vh;-webkit-user-select:none;user-select:none}.app-container .app-body{display:flex;flex-grow:1;flex-wrap:wrap;justify-content:space-between;padding:4rem 2rem 2rem;position:relative}.app-container .app-footer{background-color:#f8f8f8;bottom:0;left:0;position:fixed;right:0;z-index:10}.app-header{align-items:center;background-color:#fff;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:2px;position:fixed;width:100vw;z-index:1000}.app-header .title{font-family:Calisto MT,serif;font-size:50px;font-weight:700;-webkit-user-select:none;user-select:none}.app-header .left-btn-container,.app-header .right-btn-container{align-items:center;display:flex;flex:1 1}.app-header .left-btn-container{justify-content:flex-start}.app-header .right-btn-container{justify-content:flex-end}.app-header .add-button,.app-header .close-button,.app-header .edit-button,.app-header .logout-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:50px;justify-content:center;margin-left:15px;margin-right:15px;width:50px}.app-header .close-button{color:#e45a3d;font-size:40px}.app-header .add-button,.app-header .logout-button{color:#666;font-size:40px}.app-header .edit-button img{border-radius:50%;height:50px;object-fit:cover;width:50px}@media(max-width:550px){.app-header .title{font-size:40px}}.category-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.category-title{font-family:Britannic Bold,serif;font-size:20px;margin-left:15px;-webkit-user-select:none;user-select:none}.category-icon,.collapse-icon{cursor:pointer;font-size:18px;margin-right:10px}.link-container{align-items:center;border:1px solid #ccc;display:flex;justify-content:space-between;margin-bottom:5px;opacity:1;padding:5px;transition:opacity .2s ease-out,transform .2s ease-out}.link-container:hover{opacity:.7;transform:scale(1.05)}.link{align-items:center;color:#000;display:flex;flex-grow:1;padding:5px;text-decoration:none;-webkit-user-select:none;user-select:none}.link-image{background-color:#e0e0e0;border-radius:20px;height:40px;margin-right:10px;width:40px}.link-text{font-size:16px}.link-icon{align-self:center;cursor:pointer;font-size:18px;margin-bottom:5px;margin-left:auto;margin-right:10px}.empty-category{visibility:hidden;width:19%}.grid-wrapper{display:flex;flex-direction:column;padding:90px 30px 30px}.grid-header{display:flex;justify-content:flex-end}.search-input{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #0000001a;font-size:.875rem;padding:.5rem .75rem;width:200px}.search-input::placeholder{color:#999}.search-input:focus{border-color:#888;outline:none}.categories-grid{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:20px;overflow-y:auto;padding-top:20px;width:100%}.category-container{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;flex:1 0 18%;margin:0 .25% .25%;min-width:200px;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.category-container:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}@media(max-width:1250px){.category-container{flex:0 0 23%}}@media(max-width:1060px){.category-container{flex:1 0 20%}}@media(max-width:550px){.grid-wrapper{padding:80px 30px 30px}.grid-header{justify-content:center}.category-container{flex:2 0 15%}}.edit-category-form{padding:20px}.edit-category-form h2{color:#333;margin-bottom:20px;-webkit-user-select:none;user-select:none}.edit-category-form .form-group{margin-bottom:15px;position:relative;width:100%}.edit-category-form .form-group label{color:#666;display:block;margin-bottom:5px}.edit-category-form .form-group input{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.edit-category-form .form-group input:focus{border-color:#007bff;outline:none}.edit-category-form .form-group input[type=number]{width:100px}.edit-category-form .form-group .category-suggestions{background:#fff;border:1px solid #ccc;border-radius:0 0 4px 4px;border-top:none;box-shadow:0 2px 4px #0000001a;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.edit-category-form .form-group .category-suggestions li{cursor:pointer;padding:8px 12px;transition:background-color .2s}.edit-category-form .form-group .category-suggestions li:hover{background-color:#f5f5f5}.edit-category-form .category-suggestions::-webkit-scrollbar{width:8px}.edit-category-form .category-suggestions::-webkit-scrollbar-track{background:#f1f1f1}.edit-category-form .category-suggestions::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.edit-category-form .category-suggestions::-webkit-scrollbar-thumb:hover{background:#555}.modal-backdrop{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{animation:modalFadeIn .3s ease-out;background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-height:90vh;max-width:90%;overflow-y:auto;position:relative;width:500px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.form-actions button{border:none;border-radius:4px;cursor:pointer;padding:8px 16px}.form-actions button.btn-save{background-color:#007bff;color:#fff}.form-actions button.btn-save:hover{background-color:#0056b3}.form-actions button.btn-remove{background-color:#dc3545;color:#fff}.form-actions button.btn-remove:hover{background-color:#c82333}.form-actions button.btn-cancel{background-color:#6c757d;color:#fff}.form-actions button.btn-cancel:hover{background-color:#5a6268}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.modal-content{margin:10px;width:95%}}.edit-link-form{padding:20px}.edit-link-form h2{color:#333;margin-bottom:20px;-webkit-user-select:none;user-select:none}.edit-link-form .form-group{margin-bottom:15px;position:relative;width:100%}.edit-link-form .form-group label{color:#666;display:block;margin-bottom:5px}.edit-link-form .form-group input{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.edit-link-form .form-group input:focus{border-color:#007bff;outline:none}.edit-link-form .form-group .category-suggestions{background:#fff;border:1px solid #ccc;border-radius:0 0 4px 4px;border-top:none;box-shadow:0 2px 4px #0000001a;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.edit-link-form .form-group .category-suggestions li{cursor:pointer;padding:8px 12px;transition:background-color .2s}.edit-link-form .form-group .category-suggestions li:hover{background-color:#f5f5f5}.edit-link-form .category-suggestions::-webkit-scrollbar{width:8px}.edit-link-form .category-suggestions::-webkit-scrollbar-track{background:#f1f1f1}.edit-link-form .category-suggestions::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.edit-link-form .category-suggestions::-webkit-scrollbar-thumb:hover{background:#555}.footer-container{text-align:center}.footer-container a{color:#666;font-family:Chiller,fantasy;font-size:25px;font-weight:700;margin-left:7px;text-decoration:none;-webkit-user-select:none;user-select:none}.login-container{background-image:url(/static/media/marseille.7f5d61560fdc8ec3f98a.png);background-position:50%;background-size:cover;bottom:0;display:flex;flex-direction:column;min-height:100vh}.header-overlay,.login-container{left:0;position:fixed;right:0;top:0}.header-overlay{background:linear-gradient(180deg,#000000b3 0,#0000);padding:2px;z-index:10}.header-overlay h1{color:#fff;font-family:Calisto MT,serif;font-size:50px;font-weight:700;margin:0;text-align:center;-webkit-user-select:none;user-select:none}.login-content{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;border-radius:10px;box-shadow:0 4px 6px #0000001a;display:flex;flex:1 1;flex-direction:column;justify-content:center;left:50%;min-width:400px;padding:40px 60px;position:absolute;top:46%;transform:translate(-50%,-50%);z-index:5}.login-content h1{color:#fff;font-size:2.5rem;margin-bottom:30px;text-align:center;text-shadow:2px 2px 4px #00000080}.login-content .login-form-container{width:100%}.footer-overlay{background:linear-gradient(0deg,#000000b3 0,#0000);bottom:0;left:0;position:fixed;right:0;z-index:10}.footer-overlay a{color:#fff}.abort-button,.login-button{border:none;border-radius:5px;cursor:pointer;font-size:1.1rem;padding:12px 24px;transition:all .2s ease}.login-button{background-color:#007bff;color:#fff}.login-button:hover{background-color:#0056b3;transform:translateY(-2px)}.abort-button{background-color:#6c757d;color:#fff;margin-top:15px;width:100%}.abort-button:hover{background-color:#5a6268}@media(max-width:480px){.login-content{min-width:280px;padding:30px 20px;width:90%}}.login-form-container{width:100%}.login-form-container .login-form{display:flex;flex-direction:column;gap:15px;width:100%}.login-form-container .login-form .form-group input{background:#ffffff1a;border:1px solid #fff3;border-radius:5px;color:#fff;font-size:1rem;padding:12px;transition:all .3s ease;width:100%}.login-form-container .login-form .form-group input::placeholder{color:#ffffffb3}.login-form-container .login-form .form-group input:focus{background:#ffffff26;border-color:#007bff;outline:none}.login-form-container .login-form .error-message{color:#f44;font-size:.9rem;margin:5px;text-align:center}.login-form-container .login-form .form-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px}.addLink-container{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.addLink-container h2{color:#333;margin-bottom:20px;-webkit-user-select:none;user-select:none}.addLink-container input{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;display:block;margin-bottom:10px;padding:10px;width:100%}.addLink-container button[type=submit]{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px;width:100%}.addLink-form{background-color:#fff;border-radius:5px;padding:20px;position:relative;width:500px}.addLink-form button[type=submit]:hover{background-color:#45a049}.close-button{background:none;border:none;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:10px}.category-input-container{margin-bottom:15px;position:relative;width:100%}.category-input-container input{border:1px solid #ccc;border-radius:4px;font-size:14px;padding:8px;width:100%}.category-input-container .category-suggestions{background:#fff;border:1px solid #ccc;border-radius:0 0 4px 4px;border-top:none;box-shadow:0 2px 4px #0000001a;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.category-input-container .category-suggestions li{cursor:pointer;padding:8px 12px;transition:background-color .2s}.category-input-container .category-suggestions li:hover{background-color:#f5f5f5}.category-suggestions::-webkit-scrollbar{width:8px}.category-suggestions::-webkit-scrollbar-track{background:#f1f1f1}.category-suggestions::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.category-suggestions::-webkit-scrollbar-thumb:hover{background:#555}.error-list{flex-direction:column;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:9999}.error-banner,.error-list{align-items:center;display:flex}.error-banner{animation:fadeInDown .3s ease-out both;background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin:.25rem 0;max-width:600px;padding:.5rem 1rem;pointer-events:auto;width:90%}.error-banner.exit{animation:fadeOutUp .2s ease-in both}.error-text{flex:1 1}.error-close{background:#0000;border:none;cursor:pointer;font-size:1.2rem;line-height:1}.clear-all-errors{background:#f5c6cb;border:none;border-radius:4px;cursor:pointer;margin-top:.5rem;padding:.4rem .8rem;pointer-events:auto}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translateY(-8px)}}
/*# sourceMappingURL=main.0eba3e82.css.map*/